compositor: Move layers to a separate item

Move layers code to Layers.qml.
compositor: Make compositor available as a QtQuick Item

With this commit we can start moving more compositor stuff to QML.
compositor: Rewrite compositor with QML

The compositor is now almost 100% QML code and JS.
compositor: Cursor layer

Set cursor surface role and add a layer for cursors.
Also fixes setting the cursor surface multiple times.
compositor: Improve surface mapped and unmapped log

Log important details about surfaces according to the role.
compositor: Don't handle touch input for inhibit

Mouse input should be enough.
compositor: Set geometry correctly
compositor: Fix missing break
compositor: Take focus when windows are clicked
compositor: Actually reparent windows when role is known
X
mixer: Remove Q_INVOKABLE