p4: accept changesets with no description (issue4282)

--HG--
branch : stable
hgweb: avoid initialization race (issue4280)

--HG--
branch : stable
tests: ignore missing file with PYTHONDONTWRITEBYTECODE (issue4239)

--HG--
branch : stable
bookmarks: improve the bookmark help (issue4244)

--HG--
extra : rebase_source : cbdd30c661cfe9fe16d76c7c99ec627ad77c697d
extra : amend_source : e70a504e663eb0c5e753c7bdebcbd445c2269e5d
push: restore contents of HG_URL for hooks (issue4268)

--HG--
branch : stable
run-tests: hold iolock across diff/prompt when interactive

Otherwise diff may get separated from the corresponding prompt by
other threads. This required moving the interactive prompting from one
helper method to another.
merge with stable