phlgitu_fixture: workers fetch, checkout at init

Simplify test code by moving a common initialisation step inside the
fixture itself.

Test Plan:
$ ./precommit.sh
Add phlgit_fetch__t: rudimentary tests

Exercise the 'branch bomb' avoidance of 'prune_safe'.

Test Plan:
$ ./precommit.sh
phlgit_fetch: add support for fetching with spec

It can be useful sometimes to customize what gets fetched from a remote,
e.g. when fetching the 'refs/notes' namespace locally.

Supplying a 'refspec' directly to 'git fetch' is one of the ways to
achieve this end.

Add tests to verify that fetching a non-existant namespace is ok.

Test Plan:
$ ./precommit.sh
arcyd/acceptance_tests: fix test name
Arcyd: BREAK, simplify fetching to single call

Greatly simplify abdt_git.Repo.checkout_master_fetch_prune() by using
refspecs instead of manually detecting refs and fetching them
individually.

This reduces the number of interactions required with the server on
updating a repository to a single 'git fetch' invocation, as would
generally be expected.

The complicated approach was originally adopted because the legacy
'landinglog' ref was not compatible with the simpler refspec approach.

Repositories will need to be fixed up with arcyd fsck to remove the
landinglog ref like so ...

  $ arcyd fsck --remote --fix

... before they can be processed with arcyd after this commit.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
$ ./testbed/arcyd/test_shell.sh
    .. create and land reviews, swap between arcyd instances ..
    .. truncate landed history, ensure arcyds continue new history ..