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.
i18n-ja: synchronized with cfdae231ba78
i18n-pt_BR: synchronized with 7b815e38022a
rebase: don't clobber wd on --abort when we've updated away (issue4009)
rebase: continue abort without strip for immutable csets (issue3997)

This causes us to simply discard the rebase state.
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.
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.
merge with i18n
bookmarks: pull --update updates to active bookmark if it moved (issue4007)

This makes `hg pull --update` behave the same wrt the active bookmark as
`hg pull && hg update` does as of 2096e025a728. A helper function,
bookmarks.calculateupdate, is added to prevent code duplication between
postincoming and update.
Added tag 2.7 for changeset f37b5a17e6a0
Added signature for changeset f37b5a17e6a0