PARQUET-87: Add API for projection pushdown on the cascading scheme level

JIRA: https://issues.apache.org/jira/browse/PARQUET-87
Previously, the projection pushdown configuration is global, and not bind to a specific tap.
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(new Config().withProjection(projectionFilter));
 Tap source = new Hfs(sourceScheme, PARQUET_PATH);
```

Author: Tianshuo Deng <tdeng@twitter.com>

Closes #51 from tsdeng/projection_from_scheme and squashes the following commits:

2c72757 [Tianshuo Deng] make config class final
813dc1a [Tianshuo Deng] erge branch 'master' into projection_from_scheme
b587b79 [Tianshuo Deng] make constructor of Config private, fix format
3aa7dd2 [Tianshuo Deng] remove builder
9348266 [Tianshuo Deng] use builder()
7c91869 [Tianshuo Deng] make fields of Config private, create builder method for Config
5fdc881 [Tianshuo Deng] builder for setting projection pushdown and predicate pushdown
a47f271 [Tianshuo Deng] immutable
3d514b1 [Tianshuo Deng] done
PARQUET-88: fix pre-version enforcement

update semver dependency to use https://github.com/jeluard/semantic-versioning/pull/40

Author: julien <julien@twitter.com>

Closes #53 from julienledem/fix_semver and squashes the following commits:

70248be [julien] fix pre-version enforcement https://github.com/jeluard/semantic-versioning/pull/40
PARQUET-24: enforce JIRA prefix

Author: julien <julien@twitter.com>

Closes #54 from julienledem/PARQUET-24 and squashes the following commits:

d444f2f [julien] add option to not close JIRA
00d4b13 [julien] fix close jira
7cf9bb3 [julien] enforce JIRA prefix
[maven-release-plugin] prepare release parquet-1.6.0rc2
[maven-release-plugin] prepare for next development iteration
PARQUET-94: Fix bug in ParquetScroogeScheme constructor, minor cleanup

I noticed that ParquetScroogeScheme's constructor ignores the provided klass argument.
I also added in missing type parameters for the Config object where they were missing.

Author: Alex Levenson <alexlevenson@twitter.com>

Closes #61 from isnotinvain/alexlevenson/parquet-scrooge-cleanup and squashes the following commits:

2b16007 [Alex Levenson] Fix bug in ParquetScroogeScheme constructor, minor cleanup
PARQUET-92: Pig parallel control

The parallelism for reading footers was fixed at '5', which isn't optimal for using pig with S3.  Just adding a property to adjust the parallelism.

JIRA: https://issues.apache.org/jira/browse/PARQUET-92

Author: Daniel Weeks <dweeks@netflix.com>

Closes #57 from dcw-netflix/pig-parallel-control and squashes the following commits:

e49087c [Daniel Weeks] Update ParquetFileReader.java
ec4f8ca [Daniel Weeks] Added configurable control of parallelism
d37a6de [Daniel Weeks] Resetting pom to main
0c1572e [Daniel Weeks] Merge remote-tracking branch 'upstream/master'
98c6607 [Daniel Weeks] Merge remote-tracking branch 'upstream/master'
96ba602 [Daniel Weeks] Disabled projects that don't compile
PARQUET-89: Add hadoop-2 test profile for Travis CI.

This also fixes problems that prevented hadoop-2 from passing:
* Dynamically resolve counter methods in parquet-hadoop
* Parameterize pig version with hadoop-2 support
* Update pig test for hadoop-2 change (no nulls allowed)
* Update parquet-hive to depend on hadoop-client

The travis config will now run each test profile in a different run.

Author: Ryan Blue <rblue@cloudera.com>

Closes #55 from rdblue/PARQUET-89-add-test-profiles and squashes the following commits:

006c6d8 [Ryan Blue] PARQUET-89: Add hadoop-2 test profile for travis CI.
PARQUET-82: Check page size is valid when writing.