the compiler environment while making the compiler infrastructure more
robust also makes it more tedious. Add a cljs.env/ensure macro that is
used by the following so an environment doesn't need to be established to
do basic things, applies to:

cljs.analyzer/macroexpand-1
cljs.analyzer/analyze
cljs.analyzer/analyze-file
cljs.compiler/emit
cljs.compiler/parse-ns
cljs.compiler/compile-file*

In the case of cljs.compiler/emit, the old emit multimethod has been
renamed to emit*
optimize ensure