Add Ruff
This adds the Ruff linter to automatically format and check Python code. It also adds a paragraph in the README about how to lint.
Rationale
- Will make code look more consistent (personal stylistic choices about formatting are eliminated)
- Sometimes makes Git changelogs easier to read (because you shouldn't be able to push a commit that just changes formatting)
- Can enforce best practices (e.g. using modern language features)
Edited by Jakob Moser