Publish/Subscribe model for the interfaces
We have many interfaces and some of them react only to a subset of next methods like: notify, handle_message, handle_event.
New interfaces require new methods to be defined in all interfaces or modifying core.
Some interfaces want a delayed start like adding Homie 3.0 support #75 that requires loaded labels before start.

I am proposing to move to publish, subscribe model so any component can subscribe to the events it wants.

I am thinking to use:
https://pypubsub.readthedocs.io/en/v4.0.3/usage/usage_basic.html#quick-start

In the next "dev" branch iteration.

Any votes for or against?

Or maybe we need an async PubSub?