Adding websockets to kansas-comet

- Added websockets to kansas-comet
- Added socketConnection object to Document
- socketApplication method to complete handshake from client browser
- receiveEvents to will handle socket connection which is open between client and server
- kansas-comet.js to initiate a websocket connection if browser is capable of establishing websocket else fall-   back on long polling method
- Some formatting changes to kansas-comet.js
- Added additional libraries to cabal
- Dr. @andygill please review :)
There seem to be a lot of redundant pattern matches on `wrappedVal` here. Consider refactoring this into:

```haskell
let wrappedVal  = fromJust $ decode' evnt
       Object m = wrappedVal
       val      = HashMap.lookup (T.pack "reply") m
       uq       = HashMap.lookup (T.pack "uq") m
   case val of
       Nothing  -> liftIO $ atomically $ do
                             let pingval = HashMap.lookup (T.pack "ping") m
...
```