DynamicMultiGroup entity

Utility component that inspects entities (created/managed elsewhere) and organizes them into logical groups according to configurable criteria. Originally created as part of a separate customer project, but refactoring into core in the hope it has wider appeal!