CLJS-730: remove object? inlining macro so we can handle nil without double
evaluation issues.
tests for CLJS-730
remove redundant cljs.core analysis passes, wip protocols for some
reason no longer being tracked correctly
parse-ns sets *analyze-deps* to false. We don't want parsing ns forms to
cause analyze-file side effects.
fix PersistentHashSet.fromArray, was using old sparse array logic, add tests
add ICloneable protocol, implement for persistent collection types, add
clone function
2127 -> 2134
CLJS-414: implement specify
mark specify complete
wicked fast
2134 -> 2138
fix specify "this" test
benchmark method added to instance via specify

ridiculously fast ~30ms on my MBA 1.7ghz for 1000000 invokes. Thank you
JS fusion reactors.
and ICloneable to fast path, add cloneable? predicate
add :elide-asserts compiler option

Can now remove asserts (including pre/post conditions) from production
code