Support for sets

Support for sets, which are basically just maps, as they are in Clojure.

I'm not sure about two things (see line notes):

* the `-seq` implementation for `PersistentHashMap` (I think it should definitely be lazy, maybe we should just use `sequence`?)
* `compile_set_literal` simply uses `compile_cons`, as I couldn't get it to work directly

The sets also don't satisfy the `IMeta` protocol, as I'm not familar with that.

As an implementation detail, the reader is now prepared for "dispatch macros", e.g. things like `#()` and `#_` in Clojure.