Subscribe Bringup

A first, basic version of the Courage JavaScript client.

- Adds UUID library for generating, parsing, and stringifying UUIDs
  - UUIDs represented as 16 byte `Uint8Array`s throughout
- Adds `ConnectionManager` private class to Courage. It makes a WebSocket connection, and tries to reconnect with exponential backoff when the connection fails
- Add special `MessageParser` and `MessageBuffer` private classes for easily parsing and creating message buffers, respectively, that use cursors to keep their place in the buffer.

- Adds `.gitignore`
- Adds usage README

I recommend reading the README to get a handle on usage.


#### Compatibility

Aims for IE10+, and latest versions of Chrome/Safari/Firefox.


#### Namespace

The code is namespaced.

- TheNewTricks
  - Courage
    - Client
    - ConnectionManager :small_red_triangle_down:
    - MessageBuffer :small_red_triangle_down:
    - MessageParser :small_red_triangle_down:
  - UUID

:small_red_triangle_down: = private class


#### Common Patterns

- [Loosely-Coupled Module Pattern](http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html)
- `_private` variables have sugar

```js
var my = this._private;
var PrivateCourage = Courage._private = Courage._private || {};
```

- [Javascript constructors](http://pivotallabs.com/javascript-constructors-prototypes-and-the-new-keyword/)
Yeah, this is a little gross... I'll think about it. JS doesn't have a nice splice method built in.