Add an Iterate iterator

The new iterator takes a function and produces an infinite stream
of results of repeated applications of the function, starting from
the provided seed value.