Move all the E3DC specific code to a separate proxy. This will make it easier to adapt to changes we send upstream. This also isolates all device specific code (at least almost all of it), which should make maintaining the abstraction layer easier.
Keep the async wrapping in coordinator until pye3dc has support for async
Tweak the powermeter autodetection handling to use powermeter types, fixing a few incorrect root pm detections along the way.
Use function decorations to consistently handle e3dc exceptions and convert them to the appropriate HA exceptions. This does not yet take the new i18n abilities into account, this will follow.
Drop a few lines of unneeded code from the config flow. Adapt it to the new error handling as well.
This will also remove/rework the powermeter handling in coordinator a bit, making later changes easier (there's another issue around that open).