Refactor PipeExecutionResult

o Introduce ResultIterator trait
o Remove EagerPipeExecutionResult by introducing EagerResultIterator
o Move dumpTo* methods to new ResultDumper