Initial sync operations (local -> hdfs -> local)

@markhibberd @raronson @charleso 
I would prefer to not wrap this in `ResultT` - that's up to the consumer.