Arcyd: refactor, move get_managed_branches out

Move abdt_git.Clone.get_managed_branches() and helpers up into the
abdt_git namespace to simplify Clone and remove dependencies.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
abdt_naming: refactor, start moving to class

Pave the way for more refactoring by starting to move naming logic
inside a new class 'ClassicNaming'.  Use exceptions to communicate
naming issues instead of returning None.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, switch to ClassicNaming

Replace usage of abdt_naming.makeWorkingBranchFromName with
ClassicNaming.make_tracker_branch_from_name and remove the redundant
function.

Explicitly instantiate ClassicNaming where it's needed, later we'll pass
it to where it's needed and introduce other types of naming.

We'll repeat this process with the other free functions of abdt_naming.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
abdt_naming: refactor, extract tests to module

Test Plan:
$ ./precommit.sh
phlsys_string: refactor, move after_prefix()

Test Plan:
$ ./precommit.sh
Arcyd: refactor, move makeWorkingBranchName

Test Plan:
$ ./precommit.sh
Arcyd: refactor, move makeReviewBranchFromName()

Test Plan:
$ ./precommit.sh
Arcyd: refactor, move makeReviewBranchName()

Test Plan:
$ ./precommit.sh
abdt_naming: refactor, use _review_branch_prefix
Arcyd: refactor, mv branch pair gen to abdt_naming

Branch pair generation is more a function of the naming scheme than of
git itself, move this logic into abdt_naming

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
abdt_naming: refactor, make get_branches() private
abdt_naming: refactor, rm isReviewBranchPrefixed()
abdt_naming: refactor, rm unused funcs
abdt_naming: refactor, new branch classes

Replace WorkingBranch and ReviewBranch namedtuple's with new classes
with similar functionality.

These classes can later be extended to remove the need for
abdt_gittypes.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, remove need for gittypes

Move the functionality of abdt_gittypes into the new branch classes to
reduce redundancy and make manipulation of branch names much simpler.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, remove need for gittypes totally

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, move _push_status into branch

Remove lots of redundancy by moving abdt_workingbranch 'branch movers'
into abdt_branch.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, rm need for abdt_workingbranch

Remove the need for abdt_workingbranch by moving the functionality into
abdt_branch and reduce redundancy at the same time.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, get review_name from tracker

Extend abdt_naming.TrackerBranch to allow calculating review branch
without having direct access to the naming convention.

Test Plan:
$ ./precommit.sh
$ ./testbed/arcyd/acceptance_tests.sh
Arcyd: refactor, pass naming down from top

Instead of instantiating the ClassicNaming() at the point where it's
needed, pass it down from the top-level, where we may choose between
different naming conventions and parametize them.

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