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/)
I've seen this pattern in... every other JS repository. I have a question about how it works though.

Usually I see a `dist/` subdirectory in the project that has some minified version of the source. My question is, is that just the source for the latest release? Or does it represent the current state of the tree?

It seems weird to me if there is a _compiled_ version of the source that doesn't equate to the _source_ version of the source, but I could get used to the idea if really is common practice.

The alternative would be to bundle some grunt tasks into the repo and instruct the user to run them; but again, that may be a "systems/services engineer" solution to a "front-end" problem.