abdt_git: fix copypasta mistake in docstring
abdt_processargs: refactor _fetch_if_needed()

Change _fetch_if_needed() to use the git abstraction and not print stuff
to stdout.  (generally prefer not to print out directly going fwd)

Test Plan:
$ ./precommit.sh
abdi_processargs: refactor, simplify _run_once

Make the simplifying assumption that we don't need to use the config
stored in the repo to determine what to call the repo in error logs.

This allows us to use an abdt_git.Clone directly, which can be called
simply 'repo' without any ambiguity.

Test Plan:
$ ./precommit.sh
Arcyd: add a simple way to safely fetch and prune

This safely works around the case where a branch that would be fetched
conflicts with a branch that has already been deleted, this case causes
a straight-forward 'git fetch -p' to fail.

e.g. given this sequence of events:

  alice $ git push origin HEAD:refs/heads/mybranch
  bob   $ git fetch -p
  alice $ git push origin :refs/heads/mybranch
  alice $ git push origin HEAD:refs/heads/mybranch/blah
  bob   $ git fetch -p

bob would get an error when fetching the last time and would have to
'git remote prune origin' before fetching.

Test Plan:
$ ./precommit.sh

run through the example above, with arcyd playing the part of bob
also ran through manually as a separate dev as bob
$ ./testbed/arcyd/test_shell.sh