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).
I see - the way I thought about that status was that it would convey what the operation did. When asked to commit the revert, and there was nothing to revert, effectively nothing changed. In the case where you do not want the commit reverted, then we still do something for you - we have put you in the "revert" state... so, we did what you requested and the state of the repo is changed. 

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, rather than a statement of what changes were reverted.

> @jamill Do you foresee any issue returning  RevertStatus.NothingToRevert  in both cases?

No... we could do it that way as well.