single-keypress input in terminal demo

Thanks to http://stackoverflow.com/a/3225095 . (I should probably be
using the new Jline 2, but I think it's okay and good to commit an
individually viable change that works. When I just change the
dependency version to 2.12 without touching the code, I get a
"java.lang.NoSuchFieldException: getTerminal", so the API has probably
changed.)
:confused: about how cljsbuild works

My thought was that I want to keep core.clj with that file extension
because somehow I got the impression that all these tools were
extension-sensitive (".clj" vs. ".cljs") and I want to keep using
CIDER for core code that isn't UI specific, and that I could just have
a custom build script (in Hy because wHy (sic) not?) that copies
core.clj to core.cljs and invokes `lein cljsbuild`? But, I don't
really know what I'm doing.

The dev console is complaining with "Undefined nameToPath for
clojure.math.combinatorics" so maybe the clojure.math.combinatorics
library doesn't work with ClojureScript, either?
:truck: macro, library function into separate namespaces

Apparently ClojureScript macros are written in JVM Clojure in a
separate namespace and get required with a special :require-macros ns
declaration?

At this point, the Chromium dev console recognizes a Thirty_Three
object with lots of function attributes, so I'm hopeful that all this
can actually be made to work.
:ambulance: structural surgery

It took some effort to get the right :require declarations. It seemed
like cljsbuild was treating the "core" namespace specially (?), but
I'm content with the "hub" pattern of dependencies in this commit
(where what were once the core game functions living in core.clj are
now the foundational game functions living in foundation.clj): all the
log statements in foundation.clj[s], ui.cljs, and core.cljs print in
the Chromium dev console, and `lein test` and `lein run -m
Thirty-Three.terminal-demo` behave as they did before.
merge branch 'cljsbuild'