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).