Move CSV loading from QueryContext to ExternalResources
Introduce observer pattern for Periodic Commit and Load CSV+Periodic Commit

o Document and test interaction between Periodic Commit and Load CSV
Refactor ExecutionPlanBuilder

o Broke out all state management into ExecutionWorkflowBuilder
o Add MappingBuilder
Disable commit row alignment for aggregation and union
Merge pull request #2047 from davidegrohmann/2.1-loadcsv-periodiccommit

Try to only commit on row boundary when using Load CSV and Periodic Commit