contrib: switch the Windows bootstrap environment to py3.9
Use the built in `venv` module instead of `virtualenv` for simplicity, and
upgrade to a modern Mercurial that supports py3.
One issue here is that `venv` doesn't copy `python3{,Y}.dll` into the `Scripts`
subdirectory, so running the `hg.exe` that gets installed immediately fails on a
clean system because Python isn't in `PATH`. There is code in `python.exe` to
detect when it is in a venv and add the original python install to the DLL
lookup path, which we don't do in `hg.exe` yet. The simple workaround for now is
to run the `hg` script with `python.exe`. Typically `PYTHONLEGACYWINDOWSSTDIO`
must be set in the environment on Windows, but the clone process works without
it.
Differential Revision: https://phab.mercurial-scm.org/D11275
Our full contribution guidelines are in our wiki, please see:
https://www.mercurial-scm.org/wiki/ContributingChanges
If you just want a checklist to follow, you can go straight to
https://www.mercurial-scm.org/wiki/ContributingChanges#Submission_checklist
If you can't run the entire testsuite for some reason (it can be
difficult on Windows), please at least run `contrib/check-code.py` on
any files you've modified and run `python contrib/check-commit` on any
commits you've made (for example, `python contrib/check-commit
273ce12ad8f1` will report some style violations on a very old commit).