Introduce withLocalBranches and withRemoteBranches in GitManager.
Introduce BranchType as type variable in Branch.
Introduce BaseBranch.