Revert should clean up repository state when there is nothing to revert

Currently - when calling Revert that results in no changes to revert, the repository is left in a reverting operation. From the command line - git will cleanup the operation state (unless you are reverting with the --no-commit option).

This change is to update Revert to follow that behavior. One thing I considered was adding a `RevertStatus.NothingToCommit`, as it might be unexpected to get a `RevertSatus.Reverted` result when nothing was reverted. But I think that is not needed as this can be inferred from the result (`RevertStatus.Reverted` + `null` commit indicates that there was nothing to revert). In this case `RevertStatus.Reverted` would mean that these changes were already reverted (even if no new revert commit was generated).
So, I think that there are two concerns here:

1. The status returned when you ask to not commit and there's nothing to revert.  I agree here with @nulltoken that it's odd that the status changes depending on whether you intend to commit or not.  I would expect to get a `RevertStatus.NothingToRevert` whether I asked it to be committed or not.

2. Whether `repo.Info.CurrentOperation be set to Revert if no change to the index or workdir has been applied?  I think this makes sense, so that one could reasonably emulate `git revert --no-commit` using LibGit2Sharp.