Adding support for predicates that run on multiple columns.

This extends the current predicate functionality in Parquet to work across multiple columns. Currently, predicates can only consider data from a single column; these single column predicates can then be AND/ORed together. This approach is more general, as it allows data to be combined with non-binary functions.

The caveat with this pull request is that multi column predicates cannot be combined with single column predicates. I am working to resolve this and will submit it as a pull request as soon as I have it resolved.