What's Changed
* **Breaking Changes** - refactoring and indefinite reconnect by mjmeli in https://github.com/mjmeli/pyduke-energy/pull/14
* **Breaking** Update external interface by renaming callback functions to be fully named (e.g. `on_msg` -> `on_message`). This is a breaking change and the main reason for a major version update.
* Create a new `MqttError` class that will wrap MQTT related exceptions, and make sure these exceptions are thrown in failure instances as opposed to suppressing them
* Update `connect_and_subscribe` to be callable multiple times
* Implement `connect_and_subscribe_forever` as a wrapper around `connect_and_subscribe` which will attempt to auto-recover from any disconnections with an exponential back-off strategy
* Add new `connected` future which will trigger when `on_connect` is called. This allows us to do a timeout wait and detect when connection is never achieved. This is currently 30 seconds.
* Development improvements
* Update dev container to Python 3.10 and fix some configuration issues
* Add more type hints to help with type safety
* Miscellaneous linting fixes
* Run build and tests on pushes to all branches, not just main
* Update tox file to handle deprecation errors
**Full Changelog**: https://github.com/mjmeli/pyduke-energy/compare/v0.0.15...v1.0.0