ENG-4621: Publicize table stream API through the system procedure execution
context.

So that it can be used by system procudures.
ENG-4621: Make table stream type configurable for snapshots.

The table stream type is now associated with the snapshot format, it can be
configured by the caller.
ENG-4621: Pass tableId instead of SnapshotTableTask to SnapshotDataTarget.write().

The data targets only care about the tableId in the write() method.
ENG-4621: Pass tableId instead of table to SnaphotPredicates constructor since
it only cares about the ID.
ENG-4621: Pass the predicates to activateTableStream as bytes instead of
SnapshotPredicates.

This makes it easy to have different serialization formats depending on the
context.
ENG-4621: Return both the serialized bytes and the remaining indicator for
EE.tableStreamSerializeMore().

It can't just drop information on the floor. The caller needs both to determine
whether there was data written to the output buffers and whether we've reached
the end of stream.
ENG-4621: Extract table streaming code into a standalone class.

Extract table streaming code from SnapshotSiteProcessor into TableStreamer for
reuse.
Only use concurrent mark sweep GC on Sun JVM.
ENG-4621: Add a simple adapter for in process transaction creation.
ENG-4621: Relax hashinator add partition check to only throw an exception when a
conflict is detected.
ENG-4621: Rename SimpleAdapter to SimpleClientResponseAdapter for clarity.
ENG-4621: Add static error code for tableStreamSerializeMore() in TableStreamer.
Merge pull request #716 from VoltDB/ENG-4621

ENG-4621: Snapshot code refactoring for elastic