Python 3.8 is EOL since October. It's no longer supported by new versions
of yt-dlp, limiting video capture support. It's also no longer supported
by setuptools, which has complicated distribution - it's preventing us
from keeping packaging configuration up to date.
* Makefile improvements + pre-commit hook
* update make target in CI
* fix CI more
* .gitignore update
* couple more Makefile refinements
* make target-version explicit on ruff import sorting
There are a few minor changes here compared to black; it flagged
unnecessary string concatenations, and has slightly different
opinions on line length.