Start work on CLJXifying the project

Update the project.clj file to use CLJX.
CLJXify the source
CLJXify tests
 Port the library to CLJS

A couple of annoying changes:
- in clj we can extend a protocol to Object and it applies to primitive
  types as well (or so I think). This didn't seem to work in cljs (I
  tried `default`), so I ended up checking the operand type myself in
  `elect`
- in clj I can extend IPersistent{Map, Vector} and get the functionality
  for free for all the different map impls. In cljs I have to explicitly
  extend each of the three map impls, which is annoying
Bump up minor version, remove cljx hooks, add aliases

We're preparing for another release that should be CLJ/CLJS compatible,
so let's bump up the version to 0.2.0.

Remove the CLJX hooks for the time being - I don't have a good feel for
how cljx and cljsbuild interact, so let's remove the hooks for now. We
can always put them back.

Add aliases for testing the lib both on clj and cljs with one command,
and for deploying to clojars.