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.