Idiomatic Go implementation

I've taken the liberty to create an idiomatic Go implementation of this WebSocket wrapper, primarily for my own uses. As such, I felt it was appropriate to share the implementation.

WebSocket now implements `io.Writer` and most calls are blocking. I began to implement the `io.Reader` interface, but decided that the refactor needed for buffering would be more appropriate for a separate implementation.
Take a look above, these are already here with the type `readyState`. Those should be either removed or used.