Decategory-fy our error class. 

Even though it's now a separate class, for now it just returns plain `NSError`s (but that can be changed if the need ever arises).

This also splits errors between the `libgit2` error domain (`GTGitErrorDomain`) and ours (`GTObjectiveGitErrorDomain`) — which allows us to define our own error codes — but now `libgit2` errors are "swallowed" by our own error code (`GTObjectiveGitGitError`), so some tests had to be updated to take care of that fact.

Tell me what you think of it. Also, please note that we're cheating and not providing any localized strings yet, so it's something to keep it mind... If you want I can set that up too.