Refactor

Massive refactoring to a more sane object model for the git portions of git2consul.  Code should be easier to read, understand, and test.