Introduced the idea of an independent ComponentGroup which holds a
single instance of a set of components, and then re-implemented
MultiComponentGroup in terms of MultiComponent and ComponentGroup.