Change LeaderNoticeHandler back to an interface, which it should be.
ENG-4288: Add initialize() method to the joinCoordinator interface and mark some
of the methods as static since they don't access any instance state.
ENG-4288: Load the elastic join coordinator from the correct package.
ENG-4288: Add method to add new partition to host assignments to existing
topology.
ENG-4288: Set the sourceHSID for the dummy responses in fragment tasks'
runForRejoin().

This is essential for making the duplicate counter correct. For elastic join,
the dummy response could come from local sites, and HostMessenger won't set the
sourceHSID for us because they are not from foreign nodes.
ENG-4288: Need to set m_lastResponse to the dummy response in the SPI's
duplicate counter during elastic join.
ENG-4288: Accept dummy responses from any site in SysProcDuplicateCounter.

It used to ignore any dummy responses, assuming that there will at least be one
real response for a fragment task. With elastic join, it is possible that all
replicas of a partition return dummy responses. To unblock the MPI, the dummy
responses need to be recorded and forwarded back to the MPI.
Make BabySitter factory non-blocking, no caller is using the returned children
list. According to Izzy's recollection, as long as it's guaranteed that the
callback will be fired with the list of children at least once on startup, it's
okay.

This gets rid of the hack to pass MoreExecutors.sameThreadExecutor() to the
construction of a new BabySitter when new partitions are
added. SameThreadExecutor is actually not what we want here, because it will
grab whatever thread that's calling submit(). This could be the ZK event thread,
which would be wrong.
ENG-4288: Hack to make elastic producer finish early without waiting for the
snapshots to finish, because data transfer is not supported for k-safe join
yet.
Create a non-blocking BabySitter factory method that's used to create a new
BabySitter when a new partition is added.

This reverts commit 0975c71633107530b07218660e8f60efbff8d13b.
ENG-4288: Hack to skip data transfer for k-safe join because it is not supported
as of this ticket. The hack will be removed in the next iteration. This makes
sure that non-ksafe case still works with data transfer.
When unioning tables, also carry over the status code from the first table.
Merge pull request #485 from VoltDB/ENG-4288

ENG-4288: K-safe join without data transfer