Revert rebase operations

A revert rebase operation is used when a stream needs to remove some unwanted changes. If a baseline has some serious problems and there are no changes in the component in the context of that stream, a stream can revert to an ancestor baseline of that component involved in the unwanted baseline. The merge algorithm cannot remove the unwanted changes.

If developers need to use a questionable baseline, have them use it in a read-only stream. If a stream that has made changes needs to revert, the developer has to explicitly remove the new versions before rebasing. A read-only stream is guaranteed to have no changes. If developers encounter difficulty with the questionable baseline, in read-only streams they can always revert to a stable ancestor baseline.