CLJS-447: Allow each ns alias to be used up to twice

Each alias can now be used up to twice, once for a fn namespace and
once for a macro namespace. This allows the following (which had
worked before 7be3051):

(ns foo.user
  (:require [foo.core :as f])
  (:require-macros [foo.core :as f]))
Added Jira link
Warn on invalid js forms. refs #455
add a tutorial link
CLJS-358: eliminate state shared among Rhino REPL envs; can now restart REPL / use >1 Rhino REPL per Clojure runtime
CLJS-460: make MultiFn use custom hierarchy when specified

Includes a basic test.
`get-in` behaves incorrectly on values

Values which don't satisfy `ILookup` are handled incorrectly.
CLJS-459: fix reduce-kv node visit order for sorted maps

Includes a basic test.
CLJS-461: preserve metadata on automatic map conversions

Also includes basic tests based on the failing form from the ticket.
CLJS-464: get-in throws ILookup error if not-found not provided

CLJS-458 added the correct satisfies? check, but the two arity case of
get-in was implemented via reduce instead of delegating to the
three arity case.
CLJS-418: Add g-closure-library dependency on third-party

This adds a dependency from the google-closure-library on
google-closure-library-third-party to resolve CLJS-418.
Revert "Warn on invalid js forms. refs #455"

This reverts commit b2df2c2a69a4f1c9be8d698b74122c98b1e22491.
Merge branch 'master' into source-map