Update to libgit2 0.21

libgit2 has tagged 0.21.0-rc1, so it's time to send this PR to update the bindings.

There's been quite a lot of changes to libgit2 and its API. I've tried to keep the Python wrapping the same where possible, as a lot of those changes are to do with strings, but e.g. `git_merge` has completely changed how it works to provide the user of the library with the bits they need instead of trying to pretend it was the `git merge` command.