Re-Integrate LibGit2Sharp branch into master

These are the specific things we need to do so we can re-integrate the LibGit2Sharp branch:
- [ ] Fix crash on start-up that happens with the latest code (including merge from master).
- [ ] Update build scripts to use the new libgit2 native binary naming format (git2-COMMIT_HASH).
- [ ] Testing of basic functionality (create new repo, clone, pull, fetch, branch, commit, etc).
- [ ] Merge LibGit2Sharp branch into master.