a couple of improvements 

Hi, I was planning to use this adapter in one of my projects, I had to change a few things and it snowballed a bit. 

* made option more readable, accessible and prevent multiple calls on the same keys
* replace send-* with a single send! function that dispatches via protocol
* add utility fn to deal with (limited) request maps in ws
* fix dostring on ws handlers
* added ! on some function names to indicate state change/io


I plan to also add a wrapper function that can be called on the value of :websockets option to handle ws IO using core.async channels (using 2 channels per client, one for input one for output, a bit like what was done on the jetty7 async adapter in clojure.