Note that the goal of using CLJC here is to enable writing and running
`deftest`s in JVM Clojure to test your (CLJS) re-frame app. Actually
running a re-frame app as a meaningful thing on the JVM (other than for
tests) is explicitly *not* a goal.
- All files renamed *.cljs -> *.cljc
- New `re-frame.interop` ns for stuff that's different between CLJS and
JVM Clojure, including Reagent interop.
- Other CLJS incompatibilities (eg `catch :default` and `deftype`'s
`^:mutable` vs `^:volatile-mutable`) are handled with reader
conditionals in-place.