Replace pylint and black with Ruff. Ruff is a lot faster and combines
both linting and formatting. It also has [very good editor
integration](https://docs.astral.sh/ruff/editors/setup/) via
https://github.com/astral-sh/ruff-lsp.
The formatting is mostly compatible with black, and only introduces some
minor changes.
A lot of the removed `pylint: XXX` comments where noops when linting
with pylint, most likely to due to updates to pylint catching more false
positives.
---------
Co-authored-by: Justin Van Patten <jvp@justinvp.com>
Test code should be formatted and linted the same as library code. This
is the first step of that, simply including ./lib/test to the folder
that the black formatter runs on.