Support for Address Book groups

The Contacts app does a poor job of exposing access to groups, but here's code for interacting with groups programmatically.

Also, there's now an optional-use top-level class (AddressBook::AddrBook) that holds onto the AB reference so the same ref can be used for multiple Person & Group records. This was necessary for getting saving to work properly for groups.