TCP Protocol v2

Some tweaks to Courage.js to support TCP Protocol v2.

- Strings map to Blobs under the hood
- `MessageBuffer` now works with an `ArrayBuffer` as its base instead of `Uint8Array`
  - Enabled better semantics when writing the Uint16 for a Blob
  - Also refactored the `write*` methods.
- Replay is now a client global: `subscribeOptions`

ReplayOnly is not supported, and won't be until there's a use case. :lipstick: 

@mplewis and @JoeSelvik, I'm just going to merge this. I'd appreciate a post-review, but you obviously don't have to. :wink: This is compatible with [thenewtricks/courage-web-demo](https://github.com/thenewtricks/courage-web-demo).
This seems kinda silly to me...

`['username', 'password', 'host', 'port', 'providerId']`