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!