Part 2 of abstraction, added new BranchGithub and refactored BranchPullRequest, including all calls to it.