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

Change-Id: Ic79cc487e75155fbee9bde4f03e6041d7a1d1391
Merge "Add aggregate method"