clojure.core/iterate returns with 'cons', not lazy-seq.

```clojure
user> (clojure-version)
"1.5.1"
user> (class (iterate inc 0))
clojure.lang.Cons
```

I left it `ISeq`, a supertype of ∀`a`.`(U (ASeq a) (LazySeq a))`, as it seems reasonable to some to make it `LazySeq`-returning in the future.