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