WIP: DistCopy and sync operations

- [ ] Implementing new S3Data data type
- [ ] Rewriting DistCopy with new data types
- [ ] Pull out temporary FilePaths to mundane
- [ ] Pull out S3Data to saws?
- [ ] re-test split algorithms
- [ ] test mr jobs on cluster
- [ ] clean up
- [ ] rebase
- [ ] update api-compatibility with correct sha
Is it worth creating a data type in Saws for `bucket + key` (and share it with `S3Location`)?