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.
> `cd "$( dirname "${BASH_SOURCE[0]}" )/server"`

What does that do? Why not simply `cd ./server`?