Lift methods for Aggregator and MonoidAggregator

This can be useful when you have a common call site that expects to use
the standard Aggregator API (prepare, present) but in some cases you
wish to aggregate values that come as Option or collection types.
The advantage of `MonoidAggregator` is that the result is defined for empty input streams.  You're probably more familiar with using `Aggregator`s in the context of doing `.group.aggregate(..)` in `scalding` where you're guaranteed that the set of values being passed to the `Aggregator`s is non-empty (which only requires `Semigroup`).

However, you can use `Aggregator` independently of `scalding` to fold/scan arbitrary collections or streams, in which case you would want to be able to handle the case where the stream is empty.  Only `MonoidAggregator` can handle empty streams, which is one advantage of lifting your `Aggregator` to `MonoidAggregator`.