Use ruff for Python code quality
Detailed Description
This MR 'upgrades' the CI pipeline to use Ruff to check Python code quality. Ruff has built-in support for basically all of the flake8 extensions, and is highly configurable.
This is probably going to hurt.
API Changes
Please tick one of the following options:
- 
These changes do not modify the API. 
- 
These changes do modify the API, and are backwards compatible. 
- 
These changes do modify the API, and are backwards incompatible. 
For examples of changes that do not modify the API and/or are considered backwards (in)compatible, please see the contributing guide.