A complete rewrite of serialization to Cassandra's OnDiskAtom

Basically what happened is that now we always read from->to sstable.
So in the end the output of the reduce can be a compacted table.

This doesn't take into account the ordering of the sstables as far as
Cassandra is concerned, so the sstables wouldn't dump back into the db
without some issues, but there is no reason we couldn't change this.

Still todo:

- 1. finish ranged tombstone reduce logic
    This may be done.  Haven't tested it yet, but we are now using Cassandra's code.
- 2. handle json input
    We will deprecate this.  We could still handle it, but there is no reason to do it
    if we output sstables.
3. build a testing framework for this as the requirements are difficult now
    Not done, need to build testing for at least the reducer to make sure the new code works.
4. finish the type handling into json
    This now works, but I now need to allow the job to output json optionally and then extend
    The reader to handle reading sstables, which is what we will want to do internally.
- 5. Sort input into reduce by type.
    This is now done.  Have to test it, but it appears to work.

To roll this out in NFLX, besides testing, #4 needs to be done.  Then the python code will have to discount
the current json snapshot.