bookmarks: update only proper bookmarks on push -r/-B (issue 3973)

Make push -r/-B update only these bookmarks that point to pushed revisions
or their ancestors, so we can be sure that commit pointed by bookmark is
present in the remote reposiory. Previously push tried to update all shared
bookmarks.

--HG--
branch : stable
i18n-ja: synchronized with cfdae231ba78

--HG--
branch : stable
i18n-pt_BR: synchronized with 7b815e38022a

--HG--
branch : stable
rebase: don't clobber wd on --abort when we've updated away (issue4009)

--HG--
branch : stable
extra : rebase_source : 373c66a87541c545e1be74954964923c5c6f5de9
rebase: continue abort without strip for immutable csets (issue3997)

This causes us to simply discard the rebase state.

--HG--
branch : stable
extra : rebase_source : d5529128eb38581845feed78a89e71a97022b3c3
rebase: allow aborting when descendants detected

With this, all aborts will succeed in removing the state, rather than
leaving the user in 'what do I do now?' limbo.

--HG--
branch : stable
extra : rebase_source : 3479992ed45aa649825cadcb3c95c7fdcb668258
histedit: don't clobber working copy on --abort if not on histedit cset

Similar to issue4009, 2.7 will force people to abort histedits before
doing interesting things. Without this fix, people with histedit
sessions they wandered away from before upgrading to 2.7 could clobber
their working copy for no reason.

--HG--
branch : stable
extra : rebase_source : 2b2540a6c1cd152560ae2536dbbe130bed4b5dd2
merge with i18n

--HG--
branch : stable