Mach now always runs with Python 3.6+

We are finally dropping Python 2.7 support for mach now that all CI tasks and all in-tree workflows are running with Python 3.6+.

This will allow us to:

  • Use modern Python features like fstrings, type hints, async, and other goodies. The future feels nice!
  • Delete a bunch of Python2-specific code.
  • Prepare for the Python 3 to Python 4 migration (just kidding, I hope!)