Factor logic pertaining to each Group within a release to its own object.

This is mostly to make subclassing Groups more straight forward so that
one can attach a custom group subclass whos contents aren't determined
until the serialization method is called.

Presently, this tries very hard to hide the fact the internal
abstraction has changed, and no tests needed to be modified to make this
keep passing.

It is intended that legacy code doing complicated things with direct
hash manipulation *should* still mostly work, and automatic upgrades
will be performed as soon as CPAN::Changes gets involved directly.

But it also has scope for breaking things still, as I've not yet tested
this code vs CPAN, nor have I tested it vs DarkPAN.

s/group_name/name/