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, RevertStatus.NothingToRevert is an indication that the operation resulted in no changes, while the RevertStatus.Reverted indicates that we changed the state of the repository

Oh that's interesting.  I was looking at it like "nothing to commit", just indicating that no work was performed.  I had just inferred that the repository was still in the reverting state.