Initial web socket API.

This PR is to a `websocket` feature branch for later merging into `master`.
Would the application layer ever want to control the ping body? If there's going to be a ping, I'm tempted to suggest getting it set up so that it uses the same semantics as the spdy/3 and http/2 pings.

Maybe someday `com.squareup.okhttp.internal.spdy.Ping` evolves into a public type?