Add QWaylandOutput to support multiple outputs

Add a new QWaylandOutput class to support multiple outputs.

A window is no longer passed to QWaylandCompositor constructor
and all output related methods are removed, however one or more
outputs are required for hardware integration.

QWaylandCompositor returns a list of outputs and emits signals when
outputs are added or removed.

The QWaylandOutput constructor and destructor automatically manage
the list of outpus and emit signals.

QWaylandOutputs are created by compositor implementations after
QWaylandCompositor is instantiated.

Hardware integration is initialized when the first output
is created and it is deleted when no output is left.

Compositors are encouraged to inherit QWaylandOutput to support high
level concepts such as primary output.
They will also send wl_surface.enter and wl_surface.leave events
themselves when a surface view enters or leaves an output.

Each QWaylandOutput need a window for rendering.

Rename OutputGlobal to Output and Output to OutputResource.

Add support for physical size and available geometry.

Use better defaults for geometry and refreshRate from the QWindow
if available.

Change-Id: I742996571ddb78328f7bfa4f79b25a81995279e1
Done-with: Jan Arne Petersen <jan.petersen@kdab.com>