Remove external script dependencies from sync_common

Replace use of scap-2 and find-nearest-rsync with python code. Scap-2
has become inline python in the scap.tasks.sync_common function which
implements the business logic of creating and executing the rsync fetch
as the mwdeploy user. Though the 'scap-2' script is now unused, we'll
keep it around so we can retain 'scap-old' as a fallback for a little
while longer.

The find-nearest-rsync perl script which required a root sudo call to
execute is replaced with scap.utils.find_nearest_host which can pick out
from a collection of hosts the one that is the fewest hops away. The
advantage of this approach is that it does not require any privilege
escalation to work.

Co-Authored-By: Ori Livneh <ori@wikimedia.org>
Change-Id: I39000a9ef0567e1b8f44465e0af39f0046b93682