CDAP-1062 Readless increments can drop cells on flush and compaction

This change refactors the aggregation of increment writes.

* IncrementSummingScanner now wraps the underlying InternalScanner using a WrappedScanner class.  This class handles the details of obtaining batches of results from the InternalScanner, and detecting when we cross a row boundary, and preserves any unconsumed cells from a batch between invocations.
* IncrementSummingScanner.next() now correctly respects the limit argument, where before it could exceed the limit value on occasions.
* Adds tests for increment handling and correct aggregation between flushes and compactions.  IncrementHandlerTest handles this from the client side, IncrementSummingScannerTest tests this directly on the region.

The change to the Tephra version in pom.xml is a placeholder until we have a new Tephra release with the fix for TEPHRA-49 (should be coming shortly).
No, a put here is a "set value" and ends the current contiguous aggregation for the cell.  That's why we do the isIncrement() branch above.  So the put functions as a end marker for the current summing.  We add it's value to the previous running total, advance the index in the base scanner (to "consume" the put), then following below, the previousIncrement is emitted (containing the put's value), and we reset the running sum and previous increment to start the summing over.

So this should work with mixed puts and increments, with a put doing an effective full reset of the current value.