Improve TestWaylandConnectionThread::testConnectionThread

The test started to fail on my system without changing anything. I
assume my system got an update to latest wayland version and it
looks like the registry doesn't announce anything if nothing is
registered. So now our display at least creates the Shm interface.

In addition the test case is slightly improved with a few smaller
changes added during the debug session.
Introduce a smart pointer for managing the native Wayland resources

Instead of having each Client class care about releasing and
destroying the Wayland resource a templated smart pointer is added
which takes care of these tasks.
Do not find unused Wayland components
Update version number for 5.2 development 5.1.90
Add Registry::interfacesAnnounced signal

Emitted when the Wayland display is done flushing the initial interface
callbacks, announcing wl_display properties. This can be used to compress
events. Note that this signal is emitted only after announcing interfaces,
such as outputs, but not after receiving callbacks of interface properties,
such as the output's geometry, modes, etc..

This signal is emitted from the wl_display_sync callback.

REVIEW:120471
Fix export header for WaylandServer

This makes it possible to install and then use it. Installation is still
commented since we can't give enough stability guarantees for now.

In detail:
- do not actually install headers
- generate the export header into Wayland/Server
- include it from there

REVIEW:120579
Add support for wl_subcompositor and wl_subsurface

This implements the subcompositor and subsurface protocol on both
Client and Server side.

Client:
New classes SubCompositor and SubSurface. The SubCompositor can be
created through the Registry and creates the SubSurface which is
bound to a Surface and has a parent Surface. The SubSurface class
provides convenient wrappers for all calls exposed in the
wl_subsurface interface.

Server:
New classes SubCompositorInterface and SubSurfaceInterface. Support
for all commands is added, though the API probably still can need
some fine tuning. The synchronized vs. desynchronized behavior is
not yet exposed in the API. This could also be delegated towards
the user of the library.
Implement the wl_region interface

Compositor::createRegion added which returns a Region. Also server
side part is implemented.
Add support for opaque and input region to Surface

Implemented on both Client and Server side.
Fix build: don't include wayland-client.h in test_wayland_region.cpp
plasma-shell.xml: Merge set_global_position with set_position

The set_global_position request was redundant, we only need a set_position
request for Plasma surfaces (using global coordinates).
plasma-shell.xml: Remove cursor surface

A Qt-based compositor shouldn't need this unlike Weston.
plasma-shell.xml: Move set_screen_edge to Plasma surface

Surfaces that need this are already known by Plasma, this means it was
not in the right place.

Move it to org_kde_plasma_surface.
Remove panel interfaces and move visibility to org_kde_plasma_surface

Plasma handles panels without the help of the compositor, it just need
a way to set the visibility so the org_kde_plasma_panel interface go
away and org_kde_plasma_surface gain a new set_flags request.

Flags can be extended in the future without adding specific requests
should we need more.

The config role is now renamed to panel, it will be used for both
panels and their configuration windows.
plasma-effects.xml: Rename protocol to plasma_effects
plasma-effects.xml: Refactor slide a little bit

Rename edge enum to location, add the none value and rename slide
request argument to from.