* Remove async_remove_listener
This avoids the ambuigity as to what happens if same callback is added multiple times.
* Keep track of a context for each listener
This allow a update coordinator to adapt what data to request on update from the backing service based on which entities are enabled.
* Clone list before calling callbacks
The callbacks can end up unregistering and modifying the dict while iterating.
* Only yield actual values
* Add a test for update context
* Factor out iteration of _listeners to helper
* Verify context is passed to coordinator
* Switch to Any as type instead of object
* Remove function which use was dropped earliers
The use was removed in 8bee25c938
* Use EntityFeature in melcloud
* Use EntityFeature in mystrom
* Use EntityFeature in mysensors
* Use EntityFeature in myq
* Use EntityFeature in mpd
* Use EntityFeature in monoprice
* Use EntityFeature in moehlenhoff_alpha2
* Use EntityFeature in modern_forms
* Use EntityFeature in modbus
* Use EntityFeature in melissa
* Use EntityFeature in mediaroom
* Use EntityFeature in maxcube
* Use EntityFeature in manual_mqtt
* Fix maxcube tests
* Revert "Use EntityFeature in modbus"
This reverts commit 56cf9d900d.
* Revert "Use EntityFeature in myq"
This reverts commit 44a31b1a03.
* Revert "Use EntityFeature in mystrom"
This reverts commit 7260ee0384.
* Revert "Revert "Use EntityFeature in modbus""
This reverts commit 916a612a60.
* Revert "Revert "Use EntityFeature in myq""
This reverts commit a6be42fa17.