Better group properties handling
Currently the DefaultGroupPropertyMap's interface is java.util.Map. Group properties are passed around as plain maps, which obscures the fact that they are actually being persisted.
Adding a PersistableMap interface/abstract class and using this to pass DefaultGroupPropertyMaps around will make the intention more visible. This is not a functional change, it is purely cosmetic.