Test and fix for (hash obj-map) inappropriately depending on key insertion order.
* src/cljs/cljs/core.cljs: CLJS-116: re-pattern supports flags
* src/clj/cljs/core.clj: inline nil?
* src/cljs/cljs/core.cljs: CLJS-143: make ObjMap and HashMap hash the same way
Pick up goog.provide and goog.require statements that use double quotes.
Libraries can now manage their upstream dependencies using deps.cljs
cleanup, added messaging around upstream dependencies
Add tests for destructuring in protocol fns, refs #141
Have extend-type emit fn (and not fn*) forms for protocol fns, refs #141

This makes it possible to use destructuring in protocol function
parameter lists.
* src/clj/cljs/core.clj: fix how we deal with the first arg (this) in -invoke implementations
Merge branch 'master' of github.com:clojure/clojurescript
* src/clj/cljs/core.clj: use Michal Marczyk's this patch for IFn
* src/cljs/cljs/core.cljs: move IPrintable function implementation
* src/cljs/cljs/core.cljs: clean up delcares
* script/repljs: make the Rhino REPL warn on undeclared. REPLs should not emit undeclared warning twice
Remove duplicate dependencies instead of calling distinct.

inputs, required-cljs and required-js are now disjoint sets of
distinct elements. This means they can be concatinated and the result
is a set of distinct elements.
Make the special functions available from the ClojureScript REPL configurable.
* src/clj/cljs/compiler.clj: add *loop-lets* dynamic var for tracking let bindings in loops
* src/clj/cljs/compiler.clj: fix typo
* src/clj/cljs/compiler.clj: fix *loop-lets* bug when then are nested loop