Merge branch 'stable' into maui

Conflicts:
	src/compositor/compositor_api/qwaylandsurfaceitem.cpp
	src/compositor/wayland_wrapper/qwlshellsurface.cpp
List of patches
Add more files to the ignore list
Add more API to change QWaylandSurface properties

The previous patch allows for QWaylandSurface to call into custom
protocol implementations, but the other way around is needed too.
Instead of adding many public setters to QWaylandSurface this
makes QWaylandSurfaceInterface the way to set them, through
protected functions. This avoids calling the setters from other code
paths, which would bring the server and client states of the same
surface out of sync.

Change-Id: I9836c38835f10f6e63007b13d27a62884065f837

Conflicts:
	src/compositor/compositor_api/qwaylandsurface.cpp
	src/compositor/compositor_api/qwaylandsurface_p.h
	src/compositor/compositor_api/qwaylandsurfaceinterface.cpp
	src/compositor/compositor_api/qwaylandsurfaceinterface.h
	src/compositor/wayland_wrapper/qwlshellsurface.cpp
Add a way to have out of source shell integrations

Some platforms (especially non-desktop ones) may use a custom
Wayland shell extension, more tailored to the form factor than
the generic and desktoppy wl_shell or xdg_shell. Instead of stuffing
N protocol implementations in the QPA plugin use a plugin architecture
to allow them to live out of tree.
When creating a shell surface the QT_WAYLAND_SHELL_INTEGRATION env
variable will be checked, and if it points to a valid plugin that
will be used to create the shell surface, falling back to wl_shell
or xdg_shell if no plugin is specified.

Change-Id: I05019174bb915199dd726f5fdcc0385ef846e8de
Give a name to the event handling thread

Change-Id: I5c6073bc1908e54bc5ae50d4b6b6044974f1ad60
Add transient parent and offset to QWaylandSurface

Compositors now know more about transient surfaces.
With the parent and offset information, compositors can place transient
surfaces relative to their parent.

Change-Id: I73e08aad7bb1d8a7d40b2006208eb48e2a1a8455

Conflicts:
	src/compositor/wayland_wrapper/qwlshellsurface.cpp
	src/compositor/wayland_wrapper/qwlshellsurface_p.h
Make sure to have a hardware integration when creating windows

We need to do a full roundtrip and wait for the qt_hardware_integration
global before returning from QWaylandDisplay constructor. Waiting
for the screen is not enough, since there is no guarantee it will come
after the hardware integration global.

Change-Id: I34cb50b830632db7e5d5c7a502eeef778599b267