Rename boolean getters to "isNull"
Move checkInterface() call into enumerateFields()
Add bytecode generation of serializer for accumulator state
Allow state types to provide their own implementations
Simplify implementation of aggregation functions

Change AbstractAggregationFunction use to generated state serializer for
serializing intermediates to the wire, and by default for serializing
them in evaluateFinal() (only if the state is a single primitive).

Aggregation functions now optionally implement combineState() to merge
their intermediate state objects, and evaluateFinal() if they need to do
something more than just serializing the current state.