Add repo.reset

This adds the ability to do ``git reset`` with Rugged.

There is a bug in libgit2's ```reset --hard``` that libgit2/libgit2#1118 should fix. It's noted in the docs and there is a test for the presence of the bug, so the docs can be updated once it fails.