Main changes
* Improve documentation, and use the mkdocs-material theme
* mkdocs.yml changes. Enable dark/light modes from mkdocs-material
* Improved type hints, and add static type checks (mypy)
* Improve unit tests and add unit test code coverage reporting
* Manage the package using poetry; phase out setuptools.
* Apply some of the approaches in https://py-pkgs.org.
* Restore appveyor CI to a working state