strip: hold wlock for entire duration

Previously, we'd acquire and release the wlock several times. This meant that
other hg processes could come in and change state. Instead of that, retain the
wlock for the entire duration of the strip.

--HG--
branch : stable
shelve: fix bad argument interaction with largefiles (issue4111)

--HG--
branch : stable
subrepo: sanitize non-hg subrepos

--HG--
branch : stable
tests: deal with new gits sending status messages to stderr

git-1.8.4.2 will send messages like
  Cloning into 'X'...
  done.
to stderr.

Mute stderr.

--HG--
branch : stable
util: url keeps backslash in paths

Backslashes (\) in paths were encoded to %C5 when converting from url to
string. This does not look nice for windows paths. And it introduces many
problems when running tests on windows.

--HG--
branch : stable
bookmarks: consider successor changesets when moving bookmark (issue4015)

Previously, this required -f because we didn't consider obsolete changesets
(and their children ... or successors of those children, etc.). We now use
obsolete.foreground to calculate acceptable changesets when advancing the
bookmark.

Test coverage has been added.

--HG--
branch : stable