Made some changes to groups to make it more optimal.
- Mutate event keys in the base Subscription class
- Call into the base class in DefaultSubscription so it always
  has the correct list of event keys.
- Only add the subscriber to the list if the event was added.
Updated message bus tests to be more accurate.