Refactoring of ExecutionPlanBuilder

* Introduced the PipeBuilder trait, so EPB does not have to know about their internals
* Introduced a PipeBuilder that knows to switch between new and old PipeBuilding
Merge pull request #2118 from systay/epb-refactoring

Refactoring of ExecutionPlanBuilder