User defined aggregates

Review after #594 

@domoritz , you are probably the best reviewer if you have time. UserDefinedAggregator is essentially a fork of StatefulApply, except that the emitters only trigger at EOS and the emitters are not allowed to use the input tuples.
Myria started out, a very long long time ago, as a partial fork of SimpleDB which was architected in this way. Something something efficiency something something. In practice, raco doesn't currently generate plans that use the Aggregators to produce two columns, so we're in the former state.