Remove AbstractTDigest.compress(GroupTree).

This method is only used as a helper method on the TreeDigest impl, and both
ArrayDigest and AVLTreeDigest throw an UnsupportedOperationException when it
is called.
Remove TDigest.centroidCount() and make centroids() return a Collection instead of an Iterable.

Today we have TDigest.centroids() which returns an iterable and
TDigest.centroidCount() which returns the number of centroids. This is exactly
what a java Collection is: an Iterable whose size is known. So from a usability
perspective I think it'd be more convenient to remove centroidCount() and make
centroids() return a List. This way, TDigest can be used with all methods that
take a Collection but not an Iterable (eg. List.addAll).

The only downside is that now you need to create an object in order to have
access to the number of centroids, but this is something that escape analysis
should easility remove. So I think it's worth exposing this information through
the Collection interface in order to have a nicer API.
Merge pull request #33 from jpountz/remove_compress_GroupTree

Remove AbstractTDigest.compress(GroupTree).
Merge pull request #34 from jpountz/centroidCount

Remove TDigest.centroidCount() and make centroids() return a Collection instead of an Iterable.
Add a new t-digest impl: BatchDigest.

This implementation is different from the ones we already have in the sense that
it does not try to always keep a sorted histogram. Instead it maintains a buffer
and a main histogram and periodically merges the buffer into the histogram.

Tests pass but I think it's still required to check this impl for correctness
given how different it is from the other impls.

Although it would not be a good fit if you need to evalutate quantiles
periodically (every time that you do so, it needs to merge the buffer into the
main histogram), it seems to perform much faster for the 'batch' case when you
first add all your values and then evaluate quantiles.