Add aggregate method

This is a much more flexible approach to event aggregation.

1. Aggregate events can be added/removed at any time
2. Constructors don't need to worry if child classes have messed with the
   config and always do deep extends
3. Only disconnect events that were explicitly connected by aggregation

Change-Id: Ic79cc487e75155fbee9bde4f03e0641d7a1d1391
Merge "Add aggregate method"