ignore: emacs backup files

Change-Id: Ib1159d42134a58a3e9e91306e58a63a4216b3494
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
xdg-shell: upgrade to support current version (weston-1.5.0)

The protocol file is a raw copy of

Source: http://cgit.freedesktop.org/wayland/weston/plain/protocol/xdg-shell.xml?id=1.5.0

Task-number: QTBUG-38633/related
Change-Id: I41ca2f89c09a8b6348ce2fbf6d59f44b4c8134df
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Philippe Coval <rzr@gna.org>
Allow for the creation of surface-less QWaylandSurfaceItems

The compositors may want to have server-side only views.

Change-Id: I682b352660d1ecbf0c757b4bee9d0482cfc88006
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
MER: Add packaging.
MER: cmake unscrew

Change-Id: I92d57630933dacaed1e60805105adc0aae5aa2a2
MER: HACK: Don't use QWaylandInputContext

We want to use Maliit.

Change-Id: I10d50229a131feeb3c10d061aac5d805bb936849
Introduce QWaylandSurfaceInterface

Wayland is designed to be easily extensible with new protocol,
unfortunately it currently isn't possible with QtCompositor.
A QtWayland compositor has two ends: the Wayland end and the shell/wm
end, which may be implemented in QML. These two ends communicate mainly
through the QWaylandSurface and the QWaylandSurfaceView classes, but the
Wayland end is currently unable to hook into custom protocol extensions.
This is the purpose of the new QWaylandSurfaceInterface class, and of
QWaylandSurfaceOp and its subclasses: based on the QEvent model,
QWaylandSurfaceOp has only a type member, and its type specific subclasses
have additional data if needed. A custom protocol implementation, such as
xdg_surface or my_fancy_surface, will use a QWaylandSurfaceInterface subclass
which will call its specific protocol functions when it gets the relative
operation requests from the parent surface.
The QWaylandShellSurface class is now redundant so it is removed.
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.