Add support for column projection to parquet sources

This is similar to #1050, but adds another method `.withColumns(...)` to parquet sources for specifying projection push down. 
this doc describes setting a key in the config. Is this how this works under the covers? What about multi-input (merges, joins)?