Hi, this series starts adding static type hints to the QAPI module. As
you can see, the series started getting quite a bit long, so this is
only a partial conversion that focuses on a handful of the easier files.
The tougher files -- schema.py, expr.py, parser.py -- will each receive
their own series as a follow-up to this one.
Notes:
- This requires Python 3.6+. Python 3.5 is EOL, so let's do that.
- Any patch named "add notational type hints" changes ONLY signatures,
which have no runtime impact whatsoever. These are big patches,
but fairly straightforward.
- Most other patches are as bite-sized as possible, generally fixing one
single warning.
- After patch 6, `flake8 qapi/` should pass 100% on this and every
future commit.
- After patch 7, `pylint --rcfile=qapi/pylintrc qapi/` should pass 100%
on this and every future commit.
- After patch 16, `mypy --config-file=qapi/mypy.ini qapi/` should pass
100% on this and every future commit.