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
I'm assuming at some point you referenced `splits` twice here, looks a little funny at the moment /nit? I'm also curious how this compiles (where does the j.u.List come from?)