* Added typings to MQTTClient
* Removed weakref implementation for simplicity. We can add it back if necessary later.
* Added mypy as a dev dependency
* Added pre-commit hook
* Added subscribe, unsubscribe and publish APIs
* Added incoming message functionality
* Improved testing coverage
* Added support for cancel to connect and disconnect
* Removed support for 3.6
* Added official support for 3.11
* Removed tests related to 3.6
* Added (some) tests for 3.11
* Enabled automatic use of pytest-asyncio
* Removed backport utilities intended for 3.6
* Updated samples
* Updated documentation
* Improved reliability of E2E tests
* Updated docstring patches for modified APIs
* Updated version
* Updated classifier
* Updated repository URL
* Added migration guide
* Renamed APIs to use "start" and "stop", rather than "enable" and "disable"
* Enabled some memory leak tests that had previously been disabled
* Added a `flush_messages` fixture to the E2E infrastructure in order to avoid spurious leaks
* Other small enhancements to logging
* Added an explicit `.shutdown()` API
* Register now disconnects after any result instead of shutting down
* Enhanced the error pathway on `.register` to ensure the client cannot enter a broken state
* Removed `AutoConnectStage` from the pipeline
* Removed `auto_connect` kwarg from factory methods
* Updated DPS `.register()` to manually do a connect in lieu of auto-connect functionality
* Updated tests accordingly (except regression/stress)
* Added new APIs to enable/disable receive functionality
* Removed implicit feature enable/disable when setting receiver handlers
* Removed `RetryStage` and associated unittests
* Updated e2e tests to reflect the new need for manual enable
* Made handlers atomic to better handle enable/disable feature failure case.
* On sync clients, failure here raised the wrong exceptions. Now it will raise the correct ones.
* Tests for gate and for fuzzing
* Regression test for GitHub issue #990
* update 990 regression app to include more scenarios
* move files and add documentation
* install test utilities for e2e tests
* add test_utils for test-only config
* move iptables to test_utils
* roll back change in iptables logging
* code review feedback
* fix spelling mistakes