Add support for push down filters in parquet sources

This includes bumping parquet to version 1.6.0rc2
A little worry about calling the constructor here. User may extends this class, and calling copyWithFilter may return an instance of different class. And in the subclass, user may mix-in other trait or override some methods, and those changes will be missed after calling copyWithFilter.