Make DynamicMultiGroup extend DynamicGroup

- Extends `DynamicGroup` reusing its methods and sensors, including `ENTITY_FILTER`
- Operates on its own members for bucketing
- Includes configuration for a periodic rescan of the entity tree
- Fixed an issue where if an entity changed from being selected by the filter to not being selected, it would not be removed from buckets
- Tidy up code, using Guava to generate buckets