Convert backends into runnable plugins

Several integrations still have an unnecessary split between a plugin and a backend component.

This has legacy reasons - at the beginning of the project plugins were used for stateless integrations, while backends were used for integrations with a state or that ran an active listener.

Since the RunnablePlugin has removed this barrier, some of the remaining integrations that have both a plugin and a backend should have those components merged into a single RunnablePlugin.

Backends should only be used for integrations that actively expose a service - like the Web server, the TCP messaging service or the Hue bridge service emulator.

No due date
93% Completed