WIP: Aggregates

I still need to add tests, so this code isn't quite ready to merge, but all the functionality should be there...
We could set these up so that Jackson can fully deserialize them (via something like @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "aggregate_kind") annotation on AggregateResult) without having the custom json node manipulation. Unless we're doing some custom stuff in the .from methods.