Arcyd: archive landed branches to a special ref

Make it easier to deal with the sha1 discontinuity caused by squashing
by merging the 'originals' of landed branches into a special ref.

This ref is useful for:

- cleaning up branches contained by the landed branch
  (see 'git branch --merged')

- finding the pre-landed version of a commit
  (see 'git log --grep' - you can search for the landed sha1)

- keeping track of Arcyd's landing activity
  (see 'git log --first-parent')

Deprecate current implementation of 'barc gc'.

Update tests to exercise new cleanup using just Git commands.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
$ ./testbed/arcyd/loop_test.sh

Land and retire branches from
$ ./testbed/arcyd/test_shell.sh
Arcyd: update abandoned ones only when new commits

Early-out of updating reviews if they don't have new commits and they
are abandoned.

This will reduce the amount of time spent re-checking reviews if they
are in an abandoned state.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
WIP: Arcyd: archive abandoned branches after a warning

Help keep repositories tidy by automatically archiving review branches
associated with abandoned reviews.

Issue a warning on the abandoned review and wait until the review has
not recently been updated before automatic removal.