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
Are we expecting strange errors here? Should we print the stack trace?