CLJS-751: fix typo that causes reducers.cljs to blow up.
fix undeclared-ns warnings
add simple reducers benchmark
implement defonce macro
fix typo
CLJS-722: Move nodejs string_print fiddling into a function

This is a bit more polite than doing it when the module loads, and lets
us use ClojureScript in node-like environments that don't expose "util"
squashed cljs-734
only persistent collections should implement cloneable
add multimethod benchmark
Fix "too many open files" errors.

This patch uses `io/reader` in conjunction with `with-open` to prevent
"too many open files" errors. This happens in a browser REPL when
evaluating a file that references a couple of other files multiple
times.
CLJS-752: implement specify!

redefine specify in terms of specify! which directly modifies instances.
2156
Add IAtom protocol
remove bad ns style from import_test.cljs
CLJS-592 - preserve :macro metadata to enable AOT compilation
add back missing line in notice in core.clj macro file
add missing doc strings for transient support fns
CLJS-765: implement IReversible for Subvec
CLJS-760: break apart IAtom protocol into IReset & ISwap
fix -swap! invokes in swap!