GroupViewModel now takes charge of all child items and lays them out internally, dispatching them to custom templates.

Items are inserted as single items, then promoted to doubles. Groups are simply inserted. The rendering then happens based on this model and not the underlying visuals. Looks beautiful.