Add support for using rsync for remote deployment

When using dotlink with a remote target, the new --rsync flag tells
dotlink to use rsync for deploying files to the remote host, rather than
creating a tarball, uploading the tarball, and remotely extracting it
with a second ssh command.  This allows dotlink to deploy with only a
single ssh session (useful for 2FA environments), as well as increasing
deployment efficiency when updating an existing deployment.

--rsync will likely become the default mode soon.