Implement `Stream.flat_map/2`

This is a pretty basic implementation. It still fails like `Enum.flat_map/2` if the `map` function does not return a list.

Fixes #1642