APE Refactor and cleanup

This provides a big API improvement, allowing automatic subscription field generation, subscription and unsubscribe actions, and automatic group integration.

There are still a few things to tidy up, but this should at least work in the mean time.

Once this is merged you should be able to do camfindlay/apes: 1.0.x-dev in composer to install this in a project.