Buster isn't available for anymore for Python 312 so we have to update.
This also updates to Python 3.11.7, which turns out to be relatively invasive. I broadly
xfailed failing tests in `python_tests.yaml` since we'll upgrade to Python 3.12 soon anyways.
I also reordered prettier to come last since it's the slowest. I switched from
using black to ruff-format which says its defaults are nearly the same as black.
Adds two devcontainer configurations:
* configuration "Docker": the default, equivalent to using run_docker
* configuration "Conda"
Codespaces and VS Code allow users to select the configuration.