Add MessageAggregator and DecoderResultProvider

.. to deduplicate the aggregation logic in *Aggregator classes