Move parameter serialization from VoltSystemProcedure to FragmentTaskMessage.

They are exactly the same, just consolidating them into the common code path.
Remove unused RecoverySiteProcessor*.
ENG-5096: Serialize the type of RejoinDataAckMessage so that EOS message can be
sent over the wire.
ENG-5096: Pass the type of ack to StreamSnapshotAckSender.

Also refactored StreamSnapshotAckSender's internal blocking queue to store the
messages instead of the raw content.
Set the correct buffer limit when a cached buffer is reused in
CachedByteBufferAllocator.
ENG-5096: Send stream snapshot schema block as an individual message that has
its own index, instead of sharing the index of the data block that follows it.
ENG-5096: Send stream snapshot END message over the wire. The StreamSnapshotSink
should ack all types of messages.
ENG-5096: Remove unused mailbox from StreamSnapshotDataTarget.
ENG-5096: Make StreamSnapshotSink.getNextChunk() static.
ENG-5096: Fix TestStreamSnapshotDataTarget due to changes to the protocol.
ENG-5096: Extract stream snapshot message boxing into an interface.

The default boxing wraps all blocks into RejoinDataMessage as before, but other
types of messages is now possible. Same for the ack messages.
ENG-5096: Add a new @BalancePartitions fragment ID.
ENG-5096: Allow specifying a timeout value to StreamSnapshotDataTarget.close().
ENG-5096: Instead of having two timeouts for StreamSnapshotDataTarget, have the
watchdog's timeout be settable.
"Handle" parameter serialization exception in sysproc plan fragment creation.
ENG-5096: Fix broken StreamSnapshotDataTarget.close() ordering.

The end-of-stream message should be sent out after all outstanding work has been
cleared, so that if there is an error, the EOS message will include the correct
failure flag.
Merge pull request #768 from VoltDB/ENG-5096

ENG-5096: K-safe data transfer support for @BalancePartitions.

r=aweisberg