remove extension of prim array & string to ILookup / IIndexed
bump data.json dep
update boostrap script to grab the latest dependencies
add benchmarks for standard lib fns on strings & arrays
change `satisfies?` so it takes a third parametr. passing false will
disable JS native hash table lookup. this way if a protocol test
fails, we don't pay when we're going to handle the natives cases
directly anyway.
move string? predicate up so core fns can use it. optimize the cases
where we handle JS strings and array cases directly. Disable JS native
hash table lookup where it makes sense. goog.getUid -> goog/getUid,
goog.isArray -> goog/isArray so we emit direct JS calls.
infer tag information off the original form as well, needed to infer
direct protocol invokes of the form `(-foo ^hint x y ...)`.

now that we have `(satisfies Proto x false)` we can direct dispatch
after the test - hint these as ^not-native.
provide `array?` predicate and use it. `goog/isArray` is more general
and intended for dealing with objects passing between different JS
contexts, something we don't support in general anyway.
optimize Symbol construction - including precomputing the str rep and
calculating the hashcode. add array-map w/ symbols benchmarks where we
don't avoid the cost of constructing symbols everytime, seems ~1.5X
slower under v8
add indirect keyword and symbol invoke benchmark, keywords (JS
Strings) are nearly >7X slower under v8
fix compile time hash code computation for symbols
symbol hash code sanity check
add `lazy-cat`
add `special-symbol?`
move some basic predicates higher up
minor declare spring cleaning
fix r1798 regression on seq, get, reduce for extend-type on natives.
CLJS-504: Empty arrays and strings don't seq as nil

Colin Jones' patch w/ fixed test and formatting.
bring back toString on the core collections, include a new lower level
`pr-str*` which doesn't bring in all the other printing machinery
Add with-redefs

Remove duplication by using with-redefs in binding