Force top-level sync to use SyncDirectory

This should produce a more meaningful error if you somehow try to
initiate a sync between a file and a folder (or vice versa)
Break out Upload.Progress module