A basic Branch type (subtype of Reference)
Implement Repository.branch_lookup. Constants for local and remote branches.
Implement Repository.listall_branches.
Implement Repository.create_branch.
Implement Branch.delete.
Implement Branch.is_head.
Implement Branch.move.
Implement Branch.branch_name.
Implement Branch.remote_name.
Implement Branch.upstream getter and setter.
Implement Branch.upstream_name getter.
Better API to access local and remote branches.