stream: Pipe data in chunks matching read data

This creates better flow for large values of lowWaterMark.