Websockets!

Hidden from the public, but usable via `WebSocket.newWebSocket(OkHttpClient, Request)` for now.
Locks are easier to reason about if you guard state, not work.