Fix ElasticHashinator.getRanges() to NOT coalesce consecutive ranges for the
same partition together.

Coalescing the ranges together will make some partitions have less tokens on the
ring than the others, which could cause problems when new partitions are added.
Add toString() method to ElasticHashinator for debugging.
ENG-4699: Use Guava multimap for the stream pairs in StreamSnapshotRequestConfig.
ENG-4699: Refactor StreamSnapshotRequestConfig to be able to take more than one
stream configuration.

This opens up a single stream snapshot to generate multiple streams, each stream
can define its own stream pairs, and predicates.
ENG-4699: Add support of multiple streams in a single stream snapshot to
StreamSnapshotWritePlan.

Each stream can have its own stream pairs and predicate.
Merge pull request #525 from VoltDB/ENG-4699-prelude

Fix elastic join apprunner failures