Refactor PipeExecutionResult

o Introduce ResultIterator trait
o Remove EagerPipeExecutionResult by introducing EagerResultIterator
o Move dumpTo* methods to new ResultDumper
o Do not create unneeded inner iterators in PipeExecutionResult