Avoid N + 1 find by fetching the features up front.
Avoid N + 1 find by fetching the features up front.

Since we assert that the product features yaml and the model doesn't
allow duplicate identifiers, we can fetch the features all up front, and only update existing records.

Existing callers of seed_from_hash which want to specify features can
still do so.

mresti/manageiq,mfeifer/manageiq,gmcculloug/manageiq,agrare/manageiq,mzazrivec/manageiq,jntullo/manageiq,matobet/manageiq,borod108/manageiq,borod108/manageiq,branic/manageiq,KevinLoiseau/manageiq,fbladilo/manageiq,josejulio/manageiq,borod108/manageiq,josejulio/manageiq,juliancheal/manageiq,d-m-u/manageiq,djberg96/manageiq,ManageIQ/manageiq,NickLaMuro/manageiq,aufi/manageiq,pkomanek/manageiq,NaNi-Z/manageiq,chessbyte/manageiq,fbladilo/manageiq,romaintb/manageiq,kbrock/manageiq,ilackarms/manageiq,borod108/manageiq,ManageIQ/manageiq,tzumainn/manageiq,jameswnl/manageiq,romanblanco/manageiq,branic/manageiq,jntullo/manageiq,pkomanek/manageiq,billfitzgerald0120/manageiq,syncrou/manageiq,yaacov/manageiq,yaacov/manageiq,jameswnl/manageiq,tinaafitz/manageiq,durandom/manageiq,kbrock/manageiq,ailisp/manageiq,aufi/manageiq,ailisp/manageiq,jrafanie/manageiq,aufi/manageiq,fbladilo/manageiq,aufi/manageiq,skateman/manageiq,jvlcek/manageiq,KevinLoiseau/manageiq,maas-ufcg/manageiq,matobet/manageiq,mfeifer/manageiq,hstastna/manageiq,KevinLoiseau/manageiq,agrare/manageiq,tzumainn/manageiq,andyvesel/manageiq,tinaafitz/manageiq,mkanoor/manageiq,lpichler/manageiq,mzazrivec/manageiq,billfitzgerald0120/manageiq,ManageIQ/manageiq,yaacov/manageiq,romaintb/manageiq,branic/manageiq,gerikis/manageiq,mkanoor/manageiq,romaintb/manageiq,djberg96/manageiq,KevinLoiseau/manageiq,josejulio/manageiq,syncrou/manageiq,jameswnl/manageiq,kbrock/manageiq,jrafanie/manageiq,NickLaMuro/manageiq,NickLaMuro/manageiq,chessbyte/manageiq,andyvesel/manageiq,lpichler/manageiq,lpichler/manageiq,syncrou/manageiq,mresti/manageiq,d-m-u/manageiq,jameswnl/manageiq,maas-ufcg/manageiq,mfeifer/manageiq,d-m-u/manageiq,romanblanco/manageiq,mkanoor/manageiq,israel-hdez/manageiq,ManageIQ/manageiq,gerikis/manageiq,durandom/manageiq,jntullo/manageiq,gerikis/manageiq,israel-hdez/manageiq,kbrock/manageiq,billfitzgerald0120/manageiq,gerikis/manageiq,tzumainn/manageiq,NaNi-Z/manageiq,matobet/manageiq,juliancheal/manageiq,ilackarms/manageiq,gmcculloug/manageiq,gmcculloug/manageiq,jntullo/manageiq,skateman/manageiq,skateman/manageiq,tzumainn/manageiq,juliancheal/manageiq,djberg96/manageiq,chessbyte/manageiq,yaacov/manageiq,NaNi-Z/manageiq,juliancheal/manageiq,mzazrivec/manageiq,hstastna/manageiq,gmcculloug/manageiq,jrafanie/manageiq,jvlcek/manageiq,KevinLoiseau/manageiq,agrare/manageiq,maas-ufcg/manageiq,mzazrivec/manageiq,mresti/manageiq,billfitzgerald0120/manageiq,maas-ufcg/manageiq,andyvesel/manageiq,NaNi-Z/manageiq,pkomanek/manageiq,pkomanek/manageiq,fbladilo/manageiq,romanblanco/manageiq,jrafanie/manageiq,branic/manageiq,chessbyte/manageiq,romaintb/manageiq,josejulio/manageiq,ilackarms/manageiq,ailisp/manageiq,durandom/manageiq,syncrou/manageiq,matobet/manageiq,agrare/manageiq,mresti/manageiq,hstastna/manageiq,ailisp/manageiq,d-m-u/manageiq,romaintb/manageiq,lpichler/manageiq,romaintb/manageiq,skateman/manageiq,NickLaMuro/manageiq,djberg96/manageiq,jvlcek/manageiq,andyvesel/manageiq,maas-ufcg/manageiq,mkanoor/manageiq,KevinLoiseau/manageiq,israel-hdez/manageiq,mfeifer/manageiq,romanblanco/manageiq,durandom/manageiq,maas-ufcg/manageiq,tinaafitz/manageiq,tinaafitz/manageiq,ilackarms/manageiq,hstastna/manageiq,jvlcek/manageiq,israel-hdez/manageiq