compositor: Change cursor surface

Change cursor surface when requested.
compositor: Colorize unresponsive surfaces

Use the ping/pong API and colorize unresponsive surfaces.
compositor: Ping surface only if it's not null

Simple sanity check.
compositor: Windows stacking order

Focused windows have a higher z-index.

Closes #99
compositor: Calculate initial window position

Copy window positioning algorithm from the Weston plugin, although it
can't be ported 1:1 right now because I can't get a list of outputs
from QtCompositor.

Closes #100
compositor: Remove leftovers
compositor: Cleanup
compositor: Implement full screen mode

Add --fullscreen argument to show the compositor window full screen.

Closes #101
compositor: Initially set window container opacity to 0.0

Window container is initially not visible, but opacity will be set to
1.0 when the surface is mapped.

The behavior on opacity will nicely animate the property.

Closes #102
compositor: Don't set window container coordinates
compositor: Set transient window position

Closes #103
compositor: Fix build by excluding code not yet supported

QWaylandSurface::windowType() is not upstreamed yet, plus I submitted a
patch that sets the surface item position according to the surface
position and this will take care of correcly place transient windows.

See:
  https://codereview.qt-project.org/#change,73186
  https://codereview.qt-project.org/#change,73393
compositor: Expose application windows to the shell client

Implement wl_hawaii_shell_window interface.
While we're here, we turn the Compositor into a singleton.

Closes #104
compositor: GreenIsland::Compositor now inherits from QQuickView itself

Issue: #105
compositor: Move shell process handling to Green Island

While we are here we emit the ready() signal from a lambda function.

Issue: #105
compositor: Use new Qt loggin API
compositor: Handle surfaces signals

Green Island now emits signals when surfaces are mapped, unmapped or
destroyed.

Issue: #105
compositor: Use surface renderer and remove contrast effect

Use the surface renderer from Green Island and remove the contrast
effect because we'll be doing it later.

Issue: #105
compositor: Custom WaylandSurfaceItem for shell windows

Shell windows don't need a window container we just implement a custom
WaylandSurfaceItem with a surface renderer.

In the future we will determine position and z-index by reading the
window properties from the surface.

Closes #106
compositor: Use custom surface item from Green Island

Green Island now provides a custom surface item which does all what we
implemented here and will be the standard implementation for all custom
compositors.

We don't need a WindowContainer and a WindowChrome anymore, this makes
things a lot easier.

Issue: #105