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.