Add Stream.unfold

This generates a possibly finite stream of values.
Merge pull request #1693 from pminten/stream-generate

Add Stream.unfold