This PR updates the Python versions used in CI. Summary of changes:
Updated latest CPython version from 3.11 to 3.12. The project builds and tests pass locally for me using Python 3.12 on Ubuntu.
Where only a single Python version is required for a CI job, increase it from 3.11 to 3.12.
Remove Python 3.7 so that the minimum version supported is 3.8. This follows https://devguide.python.org/versions/ which shows that we are now beyond the end of Python 3.7's supported life.
This PR updates the Python versions used in CI. Summary of changes: