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

If reverting with the option to commit on success, and the revert
completes successfully but there are no changes to commit, then
revert will clean up the revert operation in progress state and
the RevertStatus will indicate that there was nothing to revert.
Revert should throw if HEAD branch is orphaned