Initial multi screen support

ScreenModel tracks screens and exposes them as a model, on the QML
side a Repeater creates one ScreenView for each screen in the model.
Emit workspaces signals and connect them to the view

Instead of assigning the workspaces view to Workspaces.workspaceView
the singleton now emits signals and the view will connect to them
and do its business.

This way we can easily replace the workspaces view with another in
the future.
Change Compositor.qml identifier

Rename it too compositorRoot as root is too vague.
Use layers from the screen where the window belongs

There are multiple set of layers, one for each screen.
When reparenting a window we find which screen it belngs to and
use that layers set.
Initialize screen model from the constructor
Change compositor output geometry when necessary

As soon as the total geometry changes we change the output geometry.
Don't resize workspace when reparenting

Workspace is already resized every time the parent change.
Reorder layers and improve workspaces

Workspaces singleton was replaced by WorkspacesView, a base class for
workspaces visualizations.

Workspaces view is driven by signals emitted by the compositor, so we
have the same set of workspaces for each screen by the current
workspace can be different although it currently is not.
Workspace inherits from Image

One child item less so the only childs are windows.
Comment broken window stack code out
Improve multiple screen support

Calculate initial window position taking screens into account.
Better multiple screen handling

Introduce a couple of screen model backends: fake for testing (similar to
what Weston does when runnong on Xorg) and a QScreen backend.
Remove hard-coded window coordinates used for debugging
Add debug message with window position when mapping
Fix coordinates for transient windows
Give focus to windows just mapped
Fix popup coordinates and transient reparenting

There was a typo moving windows that made it not set x coordinate,
plus we now set transient windows parent to the actual transient
parent so for popups we just take the transient offset instead of
calculating the coordinates.
Don't add transient offset to transient windows

Ignore the transient offset and center windows to their parent.
Decrease contrast for transient parents
Set objectName for windows

Otherwise it's hard to distinguish between them.