Separated out index and data-root locators for S3AvroIndexedParquetRDD
Adding ByteArrayByteAccess for local ByteAccess over Array[Byte]
Adding the ByteArrayFileLocator.

Used for debugging and testing, gives local access to an Array[Byte]
Adding OutputStream constructor to RangeIndexWriter

Allowing RangeIndexWriter to be wrapped around an OutputStream, which is useful
for testing in the short term.
Change the signature of addParquetFile to RangeIndexGenerator

Adding the ability to pass in a locator and a relative path to the RangeIndexGenerator method
addParquetFile, which makes it easier to generate coherent index files to use in the S3AvroIndexedParquetRDD.
Added a RangeIndex constructor which takes an Iterable[RangeIndexEntry]
Added FilterTuple implementation of CombinedFilter.

Simply wraps three different values in a single implementation of CombinedFilter.
Factored ParquetFileMetadata out of S3AvroIndexedParquetRDD.

ParquetFileMetadata is a wrapper class that contains all the information we need,
for extracting schemas or file metadata, or creating partitions, from a parquet file.
Passing tests for S3AvroIndexedParquetRDD.