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.