Analysis & compilation support for :test metadata

Remove `test` macro, cannot work as the test needs to be compiled in
the same environment as the var.

Add `cljs.analyzer/*load-tests*` dynamic var. Bind this properly in
`cljs.closure` if `:load-tests` option provided.

Change the `parse 'def` case in `cljs.analyzer`. We need to move down
the `var-expr` logic so that the info added to the analysis atom
will be present in the var expr AST.

Change `cljs.analyzer/analyze-symbol` to special case `:test`
metadata. Analyze the test form in the current environment and
attach it to the var AST via a `:test` property.

Change `emit* :def` case so that if `cljs.analzyer/*load-tests*` is
true and the var has a `:test` property emit the test. Do a little bit
of emission special casing so we get well formed JavaScript output.

Provide `cljs.core/test` as a plain old function.

Fix `cljs.top-level` test so that we exclude `test` now that it's in
the standard library.