Rework wrappers for the xdg-shell and the xdg-decoration protocol
The current xdg-shell wrappers don't match existing abstractions in the xdg-shell protocol well, which makes it more difficult to refactor code that is responsible for managing configure events and geometry overall in kwin.
Given that the xdg_decoration and the xdg_shell protocols are tightly coupled together, wrappers for the xdg-decoration protocol had to be rewritten as well.
QtWaylandScanner was chosen over KWaylandScanner because the former doesn't require adding a huge amount of boilerplate code.