Client Websocket API

I have done some basic test on this API, working well. But this is not finished yet.
There are several issues: 

1. Currently the client API can't handle control frame such as `PING`, `PONG`, `CLOSE`. I will implement them soon.

2. Gracefully closing should be implemented. (Handling closing)

3. I have no idea about how to write test cases for async callback. 

Demo:
```clojure
(require ['org.httpkit.client :as 'http] :reload)
(def s (http/with-channel ch {:url "ws://127.0.0.1:8080"
     :on-open #(println (:url %))
      :on-receive #(println (:data %))
      :on-close #(println "close!")}))

(http/send! s "hello world")
(http/close s)
```

Please give me some advice