Fix lock session behavior

Locking the session didn't work very well with the new Weston plugin.
Layers are reset now instead and then reinsert again so we are sure
surfaces are not really shown and don't get input.
Notifications image provider

Cache images for notifications and retrieve them with an image provider
instead of using an ImageItem because we have troubles setting an image
from C++.

This feels much more clean and that's how you are supposed to use images
from the QtQuick world.

There's also the nice side effect that don't create a separate QML
engine anymore.

Closes #74
Create notification windows from C++

Sometimes the shell hangs when using QQuickWindow from QML.
Create windows from C++.

Closes #75
Make the shell debuggable from QtCreator

Run the executable specifying the debugger port if an environment
variable is set.
Tooltip window

Implement tooltips.
Positioning is not yet precise, needs more work.

Issue: #67
Remove leftovers in shortcuts overlay

Cleanup, no functional change.
Improve shortcuts overlay layout

Much more readable now.
Remove "present" event handler

It was removed from the protocol, there's no purpose in this
code anymore.
Refactor start hawaii command and use exec

Set a $args variable with arguments and use exec to start the Hawaii.
The exec command replaces the shell with the command without creating
a new process.
Fix Wayland event handlers prototype and make them protected

Just like parent class.
Remove workspaces indicator

Users can interact with workspaces using shortcuts and in the future
we might add a desktop element for that.

Issue: #5
Add workspaces before creating the shell windows

Also add a method that creates the requested workspaces instead of
calling addWorkspace() multiple times.

Issue: #5
Workspaces overlay

Workspaces switcher overlay.

Issue: #5
Emit a signal when a workspace is activated

This is handy for the workspaces overlay.

Issue: #5
Show workspaces overlay when a workspace is activated

Workspaces overlay is usually hidden, show it when a workspace is
activated to show which workspace is now active.

Issue: #5