Very early implementation of aggregation

This is a very early draft of adding support for the aggregation
framework to Simon. It by no means represents what I hope will be the
final implementation, but I wanted to get started somewhere.

The test being added is reflective of the code that has been added, it
will change as the interface changes.

References #22