Update project.clj: description & min-lein-version
Clean up: formatting
Clean up: arg names, ns layout
Clean up: defasync code
Tweak API for greater flexibility

* Split async and WebSocket logic from def macros: add `async-response`, `if-ws-request`,
  `when-ws-request` fns.
* Swap out `defasync` and `defwshandler` to use new fns.
* Add `defasync`, `defwshandler`, `start-server` docstrings.
* Add `tools.macro` dependency.
* Add `defasync` and `defwshandler` support for name attributes (docstrings, etc.).
Merge pull request #3 from ptaoussanis/master

Some API ideas for discussion