Combine Joiner abstract class with its base class RejoinCoordinator.
Rename RejoinCoordinator base class to JoinCoordinator.
Rename Joiner to ElasticJoinCoordinator.
Rename JoinProducer to ElasticJoinProducer.
ENG-4492: Add support for adding partitions to the elastic hashinator.
ENG-4492: Separate EE hashinator update from partition count change in site.
ENG-4492: Change the constructor of SnapshotSiteProcessor to take a site tasker
queue instead of a runnable that wraps around the site tasker queue.
ENG-4492: Add per-site post-snapshot task to the SnapshotSiteProcessor.

These tasks will be run on each site after all snapshot serialization tasks are
finished but before the snapshot transaction ends.
ENG-4492: Create post-snapshot tasks for stream snapshot if requested.
ENG-4492: Make a snapshot request JSON string that may include post-snapshot
tasks for elastic join.
ENG-4492: Refactor the snapshot interest in the JoinerProducerBase so that it
can be used to monitor more than one snapshots in sequence.
ENG-4492: Add blocking partitioned table data transfer to the
ElasticJoinProducer.
Terminate StreamSnapshotDataReceiver if the thread is interrupted.
ENG-4492: Fix an assertion in RejoinMessage's constructor to accept the new type.
Read hashinator setting from both environment variable and Java property.
Reuse the addPartition code in ElasticHashinator to do the initial construction
since they are essentially the same algorithm.
Merge branch 'elastic' into ENG-4492

Resolved conflicts:
	src/frontend/org/voltdb/ExecutionSite.java
	src/frontend/org/voltdb/SiteProcedureConnection.java
Merge pull request #446 from VoltDB/ENG-4492

ENG-4492: Blocking join to a single partition cluster
Merge remote-tracking branch 'origin/elastic' into ENG-4524b