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

@markhibberd @raronson @charleso 
Returning `(foo, bar)` and `beOkValue(true -> true)` makes it easier to debug is one is wrong /supernit