Parquet-related Utility Classes

This includes several utility classes that we wrote, as part of our work to adapt and re-use Parquet within Spark and ADAM.  

One of our goals was to re-use as little Hadoop-specific functionality as possible, since disentangling Parquet from Hadoop was important (for a number of reasons, not least of which are class conflicts when it comes to wrapping HTTP services around a Spark cluster).  

This PR includes three major components: 
* ByteAccess -- which is a trait whose implementations wrap any source of bytes to which random access is available
* some classes that help us load and manage S3 and AWS credentials, and 
* FileLocator -- a trait whose implementations are a union of Hadoop's "Path" class, Java's File class, URLs, and pointers into S3.  

Carl and I are eager to hear, though, if anyone objects to these implementations and would like to suggest an alternative class or type that already exists and does the same thing.  We're eager not to re-invent too many wheels.
Can we avoid creating a new ByteArrayInputStream each time we read given that the constructor is Array[Byte]? I would guess you could check if markSupported and mark position zero?

We're also not checking if there is `length` bytes available. Do we want to?