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/)
Thoughts on something like this?
```
var ret = ""
var hyphenIndexes = [4, 6, 8, 10]
for (var i = 0; i < uuid.length; i++) {
    var s = uuid[i].toString(16)
    if (s.length < 2) {
      s = '0' + s
   }
    if (hyphenIndexes.indexOf(i) !== -1) {
        ret += "-"
    }
    ret += s
}
```