Fix locations so that paths are proper paths

Fix for `Location` so that:

 - `Location` are properly created from `URI`s more or less using the `URI.getPath` method
 - `S3Location` is back to containing a bucket/key distinction

This modification is made to fix Ivory where the `DirPath.relativeTo` method was not properly working on malformed HDFS locations (containing the host name when they shouldn't).