Implement a group router

As per the functional spec, the idea is route messages based on a user's membership or non-membership in a set of contact groups.