PARQUET-139: Update reader to initialize read context in tasks.

This updates the InternalParquetRecordReader to initialize the
ReadContext in each task rather than once for an entire job. There are
two reasons for this change:

1. For correctness, the requested projection schema must be validated
   against each file schema, not once using the merged schema.
2. To avoid reading file footers on the client side, which is a
   performance bottleneck.

Because the read context is reinitialized in every task, it is no longer
necessary to pass the its contents to each task in ParquetInputSplit.
The fields and accessors have been removed.
PARQUET-139: Expose read support helper methods.

This refactors the ReadSupport class handling in ParquetInputFormat. It
will now use the ReadSupport class if it is set on the InputFormat in
the constructor. This allows InputFormat subclasses to use a specific
ReadSupport class without setting it in the Configuration.

This also removes the use of getReadSupport in the mapred InputFormat,
where it was unnecessary.
PARQUET-139: Add ParquetFileInputFormat that uses FileSplit.

This adds a new InputFormat that uses FileSplit. This is to avoid
incompatible behavior changes from modifying ParquetInputFormat. This
uses the same ParquetRecordReader structure.