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
CLJS-509: spurious protocol warning

change analyze-file to also accept java.io.File. change parse-ns so that
we restore namespaces to it's value prior to analysis. change
compile-file so that we always analyze files even if they don't require
re-compilation. parse the ns form after that to extract out the
necessary information.
only analyze files that don't need recompilation if we haven't seen them
before.
don't reset namespaces, we have smarter incremental analysis now based
on whether a file needs recompilation
Merge branch 'master' into keywords