CLJS-367: chunked seq support in for and doseq, comprehension benchmarks

Copy & paste from Clojure with small tweaks (-nth instead of .nth on
chunks, ClojureScript-specific type hints).

doseq maintains the style of ClojureScript's doseq while using looping
logic from Clojure.

Also fixes a minor bug around argument format verification in for.
`chunked-seq?` for now checks for concrete types `ChunkedCons` and
`ChunkedSeq`. this is an optimization for `doseq` and `for`. calling
`satisfies?` to check for chunked seqs is slow for the failing case -
normal seqs.