Major refactoring

* Made GitLib and AbstractMergeErrorBuilder classes instead of modules
* Extracted GitCofig and GitRemote out of GitLib
* Changed to use GitLogger as a logging fascade
* GitProcess now takes a GitLib instead of a directory
GitHubService refactoring.

Includes extracting GitHubService::Configuration and GitHub::CreatePullRequest.