Expose Cascading pseudo-combiners

Add an AggregateByPump that is initialized either with existing Cascading
partial aggregators (e.g. SumBy, CountBy, etc.) or with a custom Functor
(map-side aggregator) and Aggregator. These must come after a grouping operation
and can be combined with each other. An aggregate by operation cannot be
combined with an every operation.