Changes to use multi-stream API endpoint.

Also improves testing of createStreamConsumer()
Refactors StreamConsumer.arrayDifference to use Array.filter()
Changes to reflect new tenacious init-connection callback semantics.
Enables status messages on the DS stream and uses them to determine when we've successfully subscribed to a stream.
Drops subscribe delay and resubscribe()

Now that tenacious start() won't resolve its promise until it's received a connection response, we can drop the subscribe delay. And now that we can subscribe to streams while opening the connection, we no longer need resubscribe() to do this.
Improves subscription process.

Optimizes to subscribe via connect request query params if unconnected when setSubscriptions() called.
Recognizes stream subscribe failure due to invalid hash and rejects corresponding promise.