With `AbstractOutput` all backends have a common parent class and Wayland session ones the subclass `AbstractWaylandOutput`. The later one includes all the necessary functionality for creation of `KWayland::Server::OutputDeviceInterface` objects.
**Goal 1:** Let all backends use the `AbstractWaylandOutput` functions instead of the alternative code path in `WaylandServer::syncOutputsToWayland`.
D23473 D23477 D23478 D23479
**Goal 2:** Make sure an output device always exists for an output. Remove unnecessary checks.
**Goal 3:** Single source of truth for data in output device objects (remove data duplication in AbstractWaylandOutput).