ENG-3969: precursor: RejoinMessage is always local, eliminate the
serialization code and throw an exception instead.
ENG-3969: Add a snapshot nonce field and appropriate constructor to
RejoinMessage.
ENG-3969: Clone SequentialRejoinCoordinator to Iv2RejoinCoordinator to
avoid blatantly breaking legacy mode.  Use it appropriately in
RealVoltDB.
ENG-3969: Add INITIATION_RESPONSE type, along with a field for the
local to return the HSID of the mailbox created for the
SnapshotDataSink to the RejoinCoordinator.
ENG-3969: Add the partition master HSID to the data returned by the
INITIATION_RESPONSE.  It's just easier for the local site to figure
this out than the RejoinCoordinator.
ENG-3969: The RejoinCoordinator now requests the snapshot on behalf of
the RejoinProducer.  This should still be serialized snapshots, that
change to come.  Also, some logging additions.
ENG-3969: Add a streamPairs object to the snapshot stream JSON doc
which will specify destination:source HSID mappings.
- Make StreamSnapshotDataTarget take a partition
  to destination HSID map, but populate it with the old single HSID we
  have.
- Switch over to using the new streamPairs key, which will
  still be solo-populated
ENG-3969: Need to use the local sites to stream that we've extracted
from JSON later on in the giant method of doom for the partition
filter.
ENG-3969: Only SnapshotSaveAPI cares about m_taskListsForSites, pull
it out of SnapshotSiteProcessor and make it private.
ENG-3969, cleanup: m_partitionLastSeenTransactionIds is also only used
in SnapshotSaveAPI, move it there and make it private.
ENG-3969 cleanup: m_snapshotPermits is no longer used
ENG-3969: Rewrite snapshot write planning:
- Generate per-partition lists of SnapshotTableTasks
- Split the task planning for different snapshot types into separate
  objects
- Start introducing a SNAPSHOT log4j instance for separable snapshot
  logging
- Other refactoring and cleanup
- SnapshotDataTargets now indicate whether they
  need the last site standing to close() them.
- Modify LocalCluster config in test to expose failure.
- Correctly close all SnapshotDataTargets on the last site to
  finish which require it
- Fix up error/failure paths.  Work around the multiple return
  table schemas for SnapshotSave. Horrible, horrible, horrible.
- Commentary
ENG-3969: Aside, rename JOIN into REJOIN where it seems appropriate.
Replace inappropriate HOST with REJOIN
ENG-3969: Move snapshot logging to SNAPSHOT instance
ENG-3969: Fix log4j.xml files to have SNAPSHOT instance, REJOIN
instance
ENG-3969: Rewrite Iv2RejoinCoordinator to stream to all nodes for
blocking snapshot
ENG-3969: For parallelized blocking rejoin, turn off the watchdog after we get all
the snapshot data since the snapshot completion might be delayed by
other sites.
ENG-3969: Per review, fix up some logging locations to dump both an
error message and stack trace rather than just the message.
Merge remote-tracking branch 'origin/master' into eng3969

Conflicts:
	voltdb/log4j.xml
Merge pull request #375 from VoltDB/eng3969

Eng3969: improve blocking rejoin performance

r=aweisberg