TCP Protocol v2

#### Updates for v2 of the Courage TCP protocol:

- Strings are Blobs under the hood
- Enable explicit control over connection state of TCP socket
- Enable replay-only functionality for APNS

#### Bug Fixes

- Remember subscribe options on reconnection
- Clean up code
  - DRY out repetitive end-of-event and end-of-channel processing code

#### New Features to Prep for APNS

- Explicit connection management:
  - `connect`
  - `disconnect`
  - `replayAndDisconnect`

Connection management outlined in the comment below.

@JoeSelvik, this is compatible with thenewtricks/courage-service#34. You can use them to test each other. thenewtricks/balto-ios@405437b is also compatible with both.