Utility classes for Parquet reimplementation in Scala.

The following changes were made as part of this commit:

* Added a dependency on the AWS Java SDK.

This dependency is listed as 'provided', because the AWS SDK for Java adds 8k+ classes,
which pushes our uber-jar over the standard 65k file limit in the Zip archive.

* Added ByteAccess trait and implementations.

ByteAccess is a trait representing "sources of bytes" for which random access is available,
e.g. local files, S3, etc. This is going to be used to wrap different data storage back-ends,
for raw byte access and allowing us to go around the hadoop library itself.

* Added SerializableAWSCredentials is an AWSCredentials which is Serializable.

We're going to need to pass around (serializable) credentials for S3, in order to
implement our ParquetRDD that reads directly from S3.

* Added CredentialsProperties encapsulates reading AWS credentials from configuration.

This is a wrapper class, designed to allow us to recognize and retrieve credentials from
the environment, config files, or other sources.

* Added FileLocator and implementations.

FileLocator, and its implementations, are a common wrapper around local Files, classpath locations,
bucket/keyname pairs in S3, and static byte arrays (for testing).  This is a way (also serializable)
for naming the location of parquet files and indices in different systems.
Merge pull request #264 from genomebridge/parquet-utils-rebase

Parquet-related Utility Classes