Add API for projection pushdown on the cascading scheme level

After adding this API, projection pushdown can be done more "naturally", which may benefit scalding. The code that uses this API would look like:

```
Scheme sourceScheme = new ParquetScroogeScheme(readClass).withProjection(projectionFilter);
 Tap source = new Hfs(sourceScheme, PARQUET_PATH);
```


to be truly immutable the class should be final.