Introduced qtwaylandscanner.

Generates C++ headers with Qt types based on the Wayland XML protocol files,
to reduce a lot of code duplication in all the places that interface between
Qt and the wayland protocol headers.

Change-Id: I34a4417d3d3d0238de2f2f74986855d097b50ec9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Adapted code to use qtwaylandscanner.

We include the wayland.xml since we need to generate bindings for the
core protocol as well.

Also, WAYLANDSOURCES has been split into WAYLANDSERVERSOURCES and
WAYLANDCLIENTSOURCES since we need to produce different output in the
server and client cases.

Change-Id: I0bd493d41ca6b26dfd2d9b1463d4b762786537f9
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Fixed broken wayland_scanner config.test.

We need to replicate the extra compiler rule to invoke the
wayland-scanner without trying to invoke the qtwaylandscanner.

Change-Id: I312b24103f63570080c32103fb352f1948308f15
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Fix variable name in QWaylandInputDevice::keyboard_modifiers

Follow-up commit for Change I0bd493d4, for non-xkb builds

Change-Id: I34e331e981d278cc1c184740c0f973d54836a0c3
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Fix the popups handling.

Use wl_shell_surface_set_popup() instead of wl_shell_surface_set_transient(),
since the latter is not supposed to make the surface follow the transient
parent movements.

Needs Weston master or 1.0.6, otherwise freezes will happen.
To have the best experience you should however use recent weston master.
The popups in QtCompositor are badly placed.

Change-Id: I3c86e5d74503514749840681b4e81c58cd73ca70

Conflicts:
	src/plugins/platforms/wayland_common/qwaylandwindow.cpp
	src/plugins/platforms/wayland_common/qwaylandwindow.h
Attach always the front buffer before committing it.

The attach semantics changed in Wayland master.

Change-Id: I79efa5e3b2d048604cadb18543101a869ccb6835
Revert "Disable desktop settings awareness for now"

This reverts commit 10652f8dd675aa0d12c11597c165831c8ba0b8b4 which
disabled desktop settings awareness to avoid loading themes for X11.

However, Hawaii is a Wayland-only desktop environment and only the
themes shipped with Qt are provided by Maui. Disabling desktop
settings awareness will not load icon themes making the DE unusable.

Conflicts:
	src/plugins/platforms/wayland_common/qwaylandintegration.cpp
Do not create a wl_shell_surface for Qt::CustomWindow

Normal application windows should usually have a wl_shell_surface. But
there are also QWindows which should be used as input panel, lock or
background surface. In this cases they must not be wl_shell_surfaces.

Native wayland API (together with the platform's native interface) can
be used to specify the surface type for that kind of windows.

Change-Id: I0f6c499e60305ab31f545d435e8f25c340d7ac3e

Conflicts:
	src/plugins/platforms/wayland_common/qwaylandwindow.cpp
Expose window properties to QML

Make window properties available to QML compositors.

Change-Id: Id87a263207dab354fbab4b67bbaaeace37660e9d