Mercurial rebase for topics
Closes #280 (closed)
This is enough for merge requests based on topics, which currently would display a 'rebase' button if the method is 'ff'.
For now we add a hard check that the branch being rebased is related to a topic, that makes for a simple revset.
As in the case of squashs, the protection against concurrent rebases seems at first sight to be unneeded (the rebase itself is atomic enough, and a subsequent would fail because it'd create instabilities) but because of #277 we have to be cautious with concurrency and avoid potential thundering herds of shares.
This will is done for both squash and rebase in the two last changesets that simply test for presence of a share.
Edited by Georges Racinet