* src/clj/cljs/compiler.clj: warn on arity
* script/bootstrap: reverting patches for CLJS-35 & CLJS-161. they broke browser REPL.
* src/cljs/cljs/core.cljs: no longer extend everything to ICounted. extend Cons to ICounted.
Supply missing arguments to some fn calls
* script/test:
* README.md: add Himera links
* README.md: flip links
* README.md: typo
Extend js-obj to support creating objects with given properties

cljs.core/js-obj is now backed by a compiler macro emitting JS
literals and uses goog.object/create in higher-order scenarios with
more than 3 key-value pairs.
* src/clj/cljs/compiler.clj: CLJS-198: support (set! o -property value) form. Simplifies interop with many JS APIs, macros like 'doto' becomes more useful.
Fix bugs around PersistentTreeMap, PersistentHashMap

A missing ctor argument is supplied in tree-map-append, missing
protocol method and .toString implementations are supplied in PTM- and
PHM-related auxiliary types.
Disable name mangling for js-reserved words in property access
* src/clj/cljs/core.clj: fix defrecord IEquiv
Cache hash code on objects which use hash-{coll,imap,iset} in -hash
TransientVector ported from Clojure

This commit splits the ITransientAssociative protocol into
ITransientAssociative and ITransientMap (the former containing
-assoc!, the latter -dissoc!) and introduces
ITransientVector (-assoc-n!, -pop!). cljs.core/pop! is introduced.

TransientHashMap now implements ITransientMap.

PersistentVector nodes are now instances of a VectorNode type (for
convenience of storing the "editable" marker).

cljs.core.PersistentVector/fromArray now uses a transient vector
internally.

PersistentVector now uses bit-shift-right-zero-fill where Clojure's
implementation uses >>>.

The array-copy and array-copy-downward functions have been moved to
the js primitives section of core.cljs.
TransientHashSet ported from Clojure

This commit introduces the ITransientSet protocol and the
cljs.core/disj! function.

cljs.core/set now builds its return value using a transient.

The Set type is now called PersistentHashSet.
* src/cljs/cljs/core.cljs: clarify == docstring
Have cljs.core/into use transients when possible

The version of #'into introduced by this commit is basically the same
as Clojure's #'into, with instance? replaced by satisfies? and
protocol methods used directly rather than the user-facing wrapping
functions.
Support apply on objects which satisfy IFn.
* src/clj/cljs/core.clj: exclude str from core.clj, str -> core/str
* src/clj/cljs/core.clj: str compiler macro