PARQUET-105: use mvn shade plugin to create uber jar, support meta on a folder

1. Make hadoop dependency from parquet-tools so it is provided. It can be used against different version of hadoop
2. Use maven shade plugin to create a all in one jar, which can be used both locally or in hadoop
3. Make parquet-meta command support both folder(read summary file) and a single file

Author: Tianshuo Deng <tdeng@twitter.com>

Closes #69 from tsdeng/bundle_parquet_tools and squashes the following commits:

d8dcd3e [Tianshuo Deng] print file offset, file path, and cancel autoCrop
a2d1399 [Tianshuo Deng] support local mode
5009a85 [Tianshuo Deng] fix README
0756f81 [Tianshuo Deng] remove semver check for parquet_tools
78c7f4b [Tianshuo Deng] use mvn shade plugin to create uber jar, support meta on a folder
PARQUET-106: Relax InputSplit Protections

https://issues.apache.org/jira/browse/PARQUET-106

Author: Daniel Weeks <dweeks@netflix.com>

Closes #67 from dcw-netflix/input-split2 and squashes the following commits:

2f2c0c7 [Daniel Weeks] Update ParquetInputSplit.java
12bd3c1 [Daniel Weeks] Update ParquetInputSplit.java
6c662ee [Daniel Weeks] Update ParquetInputSplit.java
5f9f02e [Daniel Weeks] Update ParquetInputSplit.java
d19e1ac [Daniel Weeks] Merge branch 'master' into input-split2
c4172bb [Daniel Weeks] Merge remote-tracking branch 'upstream/master'
01a5e8f [Daniel Weeks] Relaxed protections on input split class
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-123: Enable dictionary support in AvroIndexedRecordConverter

If consumers are loading Parquet records into an immutable structure
like an Apache Spark RDD, being able to configure string reuse in
AvroIndexedRecordConverter can drastically reduce the overall memory
footprint of strings.

NOTE: This isn't meant to be a merge-able PR (yet). I want to use
this PR as a way to discuss: (1) if this is a reasonable approach
and (2) to learn if PrimitiveConverter needs to be thread-safe as
I'm currently using a ConcurrentHashMap. If there's agreement
that this would be worthwhile, I'll create a JIRA and write some
unit tests.

Author: Matt Massie <massie@cs.berkeley.edu>

Closes #76 from massie/immutable-strings and squashes the following commits:

88ce5bf [Matt Massie] PARQUET-123: Enable dictionary support in AvroIndexedRecordConverter
PARQUET-121: Allow Parquet to build with Java 8

There are test failures running with Java 8 due to http://openjdk.java.net/jeps/180 which changed retrieval order for HashMap.

Here's how I tested this:

```bash
use-java8
mvn clean install -DskipTests -Dmaven.javadoc.skip=true
mvn test
mvn test -P hadoop-2
```

I also compiled the main code with Java 7 (target=1.6 bytecode), and compiled the tests with Java 8, and ran them with Java 8. The idea here is to simulate users who want to run Parquet with JRE 8.
```bash
use-java7
mvn clean install -DskipTests -Dmaven.javadoc.skip=true
use-java8
find . -name test-classes | grep target/test-classes | grep -v 'parquet-scrooge' | xargs rm -rf
mvn test -DtargetJavaVersion=1.8 -Dmaven.main.skip=true -Dscala.maven.test.skip=true
```
A couple of notes about this:
* The targetJavaVersion property is used since other Hadoop projects use the same name.
* I couldn’t get parquet-scrooge to compile with target=1.8, which is why I introduced scala.maven.test.skip (and updated scala-maven-plugin to the latest version which supports the property). Compiling with target=1.8 should be fixed in another JIRA as it looks pretty involved.

Author: Tom White <tom@cloudera.com>

Closes #77 from tomwhite/PARQUET-121-java8 and squashes the following commits:

8717e13 [Tom White] Fix tests to run under Java 8.
35ea670 [Tom White] PARQUET-121. Allow Parquet to build with Java 8.
PARQUET-122: make task side metadata true by default

Author: julien <julien@twitter.com>

Closes #78 from julienledem/task_side_metadata_default_true and squashes the following commits:

32451a7 [julien] make task side metadata true by default
PARQUET-135: Input location is not getting set for the getStatistics in ParquetLoader when using two different loaders within a Pig script.

Author: elif dede <edede@twitter.com>

Closes #86 from elifdd/parquetLoader_error_PARQUET-135 and squashes the following commits:

b0150ee [elif dede] fixed white space
bdb381a [elif dede] PARQUET-135: Call setInput from getStatistics in ParquetLoader to fix ReduceEstimator errors in pig jobs
PARQUET-132: Add type parameter to AvroParquetInputFormat.

Author: Ryan Blue <blue@apache.org>

Closes #84 from rdblue/PARQUET-132-parameterize-avro-inputformat and squashes the following commits:

63114b0 [Ryan Blue] PARQUET-132: Add type parameter to AvroParquetInputFormat.
PARQUET-114: Sample NanoTime class serializes and deserializes Timestamp incorrectly

I ran the Parquet Column tests and they passed.

FYI @rdblue

Author: Brock Noland <brock@apache.org>

Closes #71 from brockn/master and squashes the following commits:

69ba484 [Brock Noland] PARQUET-114 - Sample NanoTime class serializes and deserializes Timestamp incorrectly
Merge branch 'master' into fallback