++libgit2
Rewrite -uniqueCommitsRelativeToBranch: more smartly

@joshaber If you've still got a better algorithm, hook a brotha up.
Replace branch name manipulation with libgit2 functions
Optimize GTBranch.remoteName even further
Merge branch 'master' into optimization
No need to hide the other branch SHA in -uniqueCommits…

See eab32507bc6fd87dbdae4292c76b343e9ec558f4 for discussion.
Rename 'newFile' (and 'oldFile') to avoid a memory leak

Stops the compiler from misinterpreting the memory management based on the method name.
Fix up GTDiffSpec
Fix GTBranch.shortName for remote branches
Refix GTBranch.shortName in a way that doesn't kill performance
Optimize GTBranch.remoteName too
Bump for libgit2/libgit2#1630
Simplify GTBranch.remoteName
Test GTBranch.shortName
Test GTBranch.remoteName
Test GTBranch.branchType
Test -uniqueCommitsRelativeToBranch:error:
Rename GTReference.oid to git_oid, add GTOID property
Test -[GTReference isRemote]
Merge pull request #174 from libgit2/optimization

Optimization