This dramatically increases the speed (7x in my tests) of the de-dupe as google drive supports ListR directly and dedupe did not work with `--fast-list`. Fixes #2902
* factor into its own files * remove assumptions about having a given hash type * make tests work if the remote has no hash