abdt_branch__t: move branch tests to abdt_git__t

Do more realistic testing of branches by moving the existing
'branch update' tests into abdt_git__t and create new branches after
each update to the 'arcyd repo' in the test setup.

This means that we will be able to test optimisations that rely on
clients abdt_branch re-creating branches after fetching.

Test Plan:
$ ./precommit.sh
Arcyd: add commit hash params to branches

Make it possible for abdt_branch.Branch to do cheaper has_new_commits()
tests by supplying the initial commit hashes of both it's branches.

This will also be useful for getting commit hashes into comments on
reviews.

Test Plan:
Also do the original, expensive test in has_new_commits() and assert
the result matches the new cheaper test.
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
$ ./testbed/arcyd/loop_test.sh

Make some reviews in
$ ./testbed/arcyd/test_shell.sh
abdt_branch: remove expensive assertion

Remove the has_new_commits() assertion that checks the old, expensive
way of checking returns the same result as the new, cheaper one.

Test Plan:
$ ./precommit.sh
Arcyd: comment on reviews using full commit hashes

Include full commit hash of review branch when creating,
updating or landing reviews.

This makes it much easier to reconstruct history, without having to
resort to any separate audit logs.

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

Create, update and land review, verifying that hashes are as expected
$ ./testbed/arcyd/test_shell.sh