CLJS-635: ensure that rseq of empty collections always returns nil
Fix property-accessor in clojure.browser.repl after the namespace syntax change in cljs
Update property-accessor style in clojure.reflect
CLJS-634: do not call getPath on a null value.
CLJS-628: *cljs-file* not bound when compiling to stdout
CLJS-471: prevent empty regexps from causing compiler errors

Depending on the JS vm being used, empty regexes will print as
either #"" or #"(?:)" (the latter being emitted by those with a
webkit heritage AFAICT).
CLJS-632: use tools.reader's *alias-map* for tracking aliases instead of Clojure namespaces:

* updated tools.reader to 0.7.10
* renamed `:uses-macros` and `:requires-macros` keywords used internally
  in the analyzer to be imperative, matching `ns` usage
CLJS-638: Keyword invoke is inconsistent with clojure

Keyword -lookup arity incorrectly dispatched to the 3 argument get instead
of 2 argument get.
add :js to list of ops optimizable by and/or, add wrapping parens to
boolean exprs
add empty testing files
fix bug where nil could be a path in source map
source maps work with incremental compilation now
If output-to is :print if compiler redirects output. In that case set sourceMappingURL to source-map to avoid trying to open file :print.

Also update source map to use //# (new format) instead of //@ (old format).
make source map incremental compilation support even more
robust. previously source map support would not work for incremental
compilation across JVM runs. Now compiler tracks which files it has
seen, if a file has never been encountered and source maps are enabled,
then it will trigger a recompile, under :optimizations :none just checks
for existence of the corresponding .map file for each compiled .cljs
source file.

java.io.File -> File in compiler.clj

now that incremental compilation is more robust, remove reset hacks for
:optimize-constants and :advanced.
1934 -> 1978
use new source map convention
CLJS-521: pass along entire repl environment when loading dependencies
CLJS-646: single segment namespaces and reify don't work

the exists? call in reify was not correct, it was a property access on
the namespace, which would of course get resolved by the compiler,
creating a symbol foo/foo (in the case where foo is the single segment
namespace). now we actually emit a symbol of the namespace and the type
symbol, the exists? macro now annotates this symbol with
:cljs.analyzer/no-resolve, the analyzer now respects this so the user
won't get spurious warnings from using exists? on vars that don't exist.
CLJS-645: parse-ns needs to include 'constants-table as a dep

Did not having the constants-table as an implicit dependency on all
namespaces if cljs.analyzer/*track-constants* true. Minor refactor of
the logic in both compile-file* and parse-ns
CLJS-641: js* overflow for large inputs

sequence construction not wrapped in a lazy-seq, would result in a stack
overflow for large inputs