Refactor Merchandising-Component Creation Code

Simplifies class hierarchies and removes some redundant code.
I have some reservations about it, but also about a base type as well.  This is slightly better so in the spirit of progressive enhancement will merge this for now and re-think it through another day.