tempKey w/streaming. Allow join with a multi batch. v0.2.0

Stream to a unique tempKey, then when finished rename the tempKey to saveKey.

If a clientMulti is provided then add the rename to it and allow user to exec as part of their batch.

 - `redisWStream(client, saveKey, [options])` - construct a new write stream using redis `client`, saving to the key at `saveKey`. Client should not be a normal (non-multi batch) client otherwise it will accumulate the stream in memory before sending. You can provide a batch client as part of `options.clientMulti` if you want the final rename to happen as part of another batch.
 - `options` can be used to provide additional stream options.
 - `options.tempKeySuffix` - can be provided to tell redis what suffix to use for its temporary key which will be used while the stream is being written (which will be renamed to `saveKey` when complete). If not provided then a random string will be appended. Note that this needs to be unique so that concurrent writes for same key will not conflict with each other.
 - `options.clientMulti` - if provided then once the stream is completely written, the rename operation will be written to this client but not executed, so you can later call `exec()` along with any other operations that are par of your transaction. If this option is not provided, then the rename will be performed and executed on the original client. So if you provide this option, you must call `options.clientMulti.exec()` yourself at some point after this finishes.

Note: This module works by appending chunks to a tempKey as the data is streamed in, and then once complete, renames the tempKey to saveKey. In this way the original key is unaffected until the rename happens which is atomic. If `options.clientMulti` is provided then the rename will be appended after the stream is done writing and it is up to the user to `exec()` the multi client when they are ready for it to occur along with the rest of a batch.