Add a LoadCSVPlanBuilder and a LoadCSVPipe

Extend ClosingIterator to accept a list of cleanup tasks to be run
at the end of query execution.
In the case of LoadCSV, it will be used to close file handles
for CSV files being read.