With default "poetry install", it can run sample test cases, but not
azure or libvirt. It uses to reduce dependent packages for other
platforms.
If it needs to run against Azure, use "poetry install -E azure". To
support both Azure and libvirt, use "poetry install -E 'azure libvirt'".
This version has more power on type assertions, and we can get rid of
a bunch of "# type: ignore" entries. My theory is that they point a
newer release of Typeshed (https://github.com/python/typeshed), so
that we have more type annotations available.
Real mistakes have been caught with this update, BTW.
This Makefile is optional because the commands can be run independently,
it was added just to simplify and centralize all our commands. On Linux,
GNU Make is expected to almost universally be installed, but on Windows
it may need to be installed manually to use it. Fortunately the GitHub
Actions Windows image has it.