Reader macros implementation!

This PR isnt done, but mainly for feedback and reviewing of the current code and test cases.
Basic syntax:
```.clojure
(defreader ^ [expr]
  (print expr))

#^"woohoo!"
;; -> (dispatch_reader_macro '^ '"woohoo!")
```

Current issues:
* Error handling isnt anywhere near finished, got some hiccups there.
* Needs better test cases.
* Refactor `defmacro`and `defreader`code in `compiler.py`

Feedback & comments is more then welcome!