groups: redo the GroupPersistor class.

The old one has a serious design issue that it doesn't allow for storing
additional metadata, i.e. the clients (comps) are directly bound to the
serializaiton (json) mechanism. Adding new attributes is very hard.
Add comps Solver.

A centralized place to decide how different group operations should resolve.
wip-base.py