nth should only work ISeq not on ISeqable
remove some unprincipled js* usage
analyzeable js*

js* now consistently maps onto inlining macros. js* ast nodes are now
annotated with the name of the original macro in the :js-op field
breakout protocol warning code, prep for protocol impl tracking
track protocol implementers
CLJS-571: update tools.reader to last version
remove code dup
fix typo in seq, ILookup -> ISeqable
CLJS-582: (set [1 2 2]) => #{1 2 2}

Remove ill considered set construction optimization - was naively
applying idea from list construction optimization to sets.

Instead handle IndexedSeq case specially as this optimizes hash-set as
well as small PersistentVector case. Otherwise just loop/recur reduce on
a transient set with appropiate type hinting.
CLJS-585: ChunkedCons does not implement INext
Fix split issues.
CLJS-565: Allow the clojurescript reader to read "%"
Add project.clj
explicit JVM opts
CLJS-580: def + fn bug

Only pass name to analyze-seq, name only needed by fn case, not data
literal cases.
test for CLJS-580