Initial web socket API.
Implement message reader.

Currently the reader skips control frames.
Implement message writer.
Hook up the web socket reader and writer together.

Add a simple real-world recipe which talks to an echo server.
Use empty string for absense close reason.
Use a singleton list which is slightly more efficient.
Allow 'http' and 'https' URLs for convenience.
Migrate types to 'internal' package.

This will allow us to bake the implementation and API on master with normal development of the library.
Synchronize when attempting to close the websocket.
Merge pull request #1129 from square/websockets

Websockets!
Working towards 2.2.0.
We no longer support Froyo.
Null reference to allow multiple shutdown calls.

The shutdown command was looking for a null reference in order to early return but nobody was nulling the reference.
Merge pull request #1176 from square/jw/null-ref

Null reference to allow multiple shutdown calls.
Merge pull request #1172 from square/jw/master-version

Working towards 2.2.0.
Merge pull request #1174 from square/jw/froyo-melted

We no longer support Froyo.
Remove unused local which was always null.
Merge pull request #1177 from square/jw/unused

Remove unused local which was always null.
Resurrect http/2 frame logging,
Merge pull request #1181 from square/adrian.frame-logger

Resurrect http/2 frame logging,