Make IterablePipe lazy to avoid some OOM cases

closes #977 

See:

https://gist.github.com/krishnanraman/739f4f753f77400abb71