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
* Extracted GitHubService::Configuration
* Extracted GitHub::CreatePullRequest