wip, not yet working
support checkouts and making new local branches

bit of a mega commit, supporting creating new branches from either
existing heads or commit SHAs and checkout branches (aka heads) from
the branches listview. Prep for detached Heads checkouts but not quite
done yet.