Added InfiniteStream and implemented Stream::limit

InfiniteStream generates an infinite stream with a given
generator function g and a seed value s, i.e. the stream consists of s,
g(s), g(g(s)), g(g(g(s))),…