Consolidate sending and ack tracking threads used by StreamSnapshotDataTargets
to one per node.

The will only be one sending thread and one ack tracking thread per node for
stream snapshot. They share the same mailbox. All the StreamSnapshotDataTargets
will pass work to these two threads.
Consolidate StreamSnapshotSinks used during join to one per site.

Each sink will be receiving data from multiple sources.
Merge branch 'master' into stream-refactor

Resolved conflicts:
	src/frontend/org/voltdb/iv2/ElasticJoinProducer.java
	src/frontend/org/voltdb/rejoin/StreamSnapshotSink.java
Merge pull request #602 from VoltDB/stream-refactor

Consolidate threads used for stream snapshot during join
jenkins tool clone jobs: add endurance system tests to jobs cloned
ENG-4870: Only terminate sender and ack tracking threads when all stream
snapshot data targets are finished.

Some data targets may close earlier than the others. For those that close early,
they shouldn't terminate the global sender thread and the global ack tracking
thread. The thread should only be terminated after all data targets have
finished doing their works.
Merge pull request #603 from VoltDB/ENG-4870-stream

ENG-4870: Only terminate sender and ack tracking threads when all stream snapshot data targets are finished
ENG-4870: Add tests for StreamSnapshotDataTarget.

Also remove the mailbox at the end of the snapshot.
Merge pull request #604 from VoltDB/ENG-4870-stream

ENG-4870: Add tests for StreamSnapshotDataTarget.
ENG-4870: Fix TestRejoinEndToEnd.

Math for calculating header offsets were not changed accordingly after
reordering the metadata in rejoin data message.
Merge remote-tracking branch 'origin/master' into catalog-report-hugg