Operator forIterable 2

Split from #636

This operator behaves differently than ```concat(Iterable)```. It allows projecting a potentially infinite sequence onto Observables concatenated one after each other. The input Iterable sequence is not traversed upfront like concat(Iterable) and concat(Observable) would do.