Spillable GroupBy implementation using an HBase table to spill. 

This GroupBy implementation uses an in-memory 1st level LRU cache, which dynamically grows until memory is exhausted. At this point the cache starts spilling evicted elements into an HBase table. Keys are never updated, instead multiple spills on the same key are store with multiple row versions in HBase. The final aggregate is computed by iterating over all versions for a single key and merging the partial aggregates together.