Add Ignore support

This PR adds support for the new .gitignore methods in libgit2
Re-enable skipped hard reset test
Update checkout in response to libgit2 checkout changes
Add checkout tests
Checkout branch as snapshot
Add TODO comment
Small documentation fix