Checkout update

This PR updates LibGit2Sharp in response to the recent checkout updates in libgit2. We now call `git_checkout_tree` and then update head so that checkout can take into account the current working directory, current head, and the target commit.

This also re-enables a reset test which was temporarily disabled.