Add commit amending

I added the ability to amend commits. Unfortunately I also had to update libgit2 to get access to git_commit_amend as a public API method. This update required me to adjust some calls out to libgit2 that now take optional signatures and messages for the reflog. For now I just left these as NULL. I'm happy to update those methods to take actual signatures and messages, but wanted to make sure that's what we want to do. Thoughts?

Added a test for the commit amend method. Works great.