Also:
* Remove pyright: ignore comments in favor of reducing associated
diagnostic settings from "error" to "warning" in pyrightconfig.json.
I.e. prefer seeing these (non-)issues as warnings in pyright output
over smearing the code with more type checker gunk.
* Don't bother registering dict_keys as a BidictKeysView.
* Pin tox version in .github/workflows/test.yml, to prevent
unpredictably picking up breaking changes that break CI (e.g.
allowlist_externals from the recent 4.0 release).
* Ditch setup.py in favor of setuptools' PEP 621 support. Ref:
https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
* Declare development dependencies in pyproject.toml rather than
requirements/*.in
* Ditch pip-compile-multi which does not support sourcing deps from pyproject.toml
* Compile dependencies into dev-deps/*.txt rather than requirements/*.txt
* Don't include development-related files in the sdist or wheel.
* Drop less important bidict.metadata attributes
(__maintainer__, __email__, __status__, __keywords__, __project_urls__)
and make __author__ a dictionary with "name" and "email" keys
to match the standard format in pyproject.toml.