Enhancements:
* Use tools.reader everywhere, pass file information allowing errors at read time to give accurate locations
Fixes:
* CLJS-595: keyword invoke default bug
* CLJS-594: declare divide so accidental redeclaration is caught
* CLJS-599: keyword fn not idempotent
* CLJS-587: stack overflow on lazy seqs