Hide effects chain output

Make intermediate output hidden.
Windows list and metadata

Receive windows list and metadata from the compositor.

Issue: #48
Add workspaces manager protocol

Add the concept of workspace, methods and events to hawaii_desktop_shell
to manage workspaces (create, select and remove).

Also add workspaces manager protocol from Weston which will be
useful in the future. The plan is to merge this with our protocol and
make a separate interface for workspaces.
Rename desktop-extension to desktop-shell
Create shell windows when compositor is ready

The compositor will trigger the loaded event after binding the interface
and the shell will create its windows.

Issue: #50
Key bindings

Global key bindings.

Issue: #32
Overlays

Add the set_overlay request to the protocol.

Issue: #43
Hide and show all windows

Add a couple of requests to show and hide all windows.

Issue: #44
Desktop elements grabbing

Add a protocol to grab and move desktop elements around.

Issue: #51
Remove useless hide_surface

Now that https://codereview.qt-project.org/#change,59262 is merged we
don't need the hide_surface workaround.

Closes #52
Create notification bubble's surface buffer before add_surface()

Perform a fake resize and process events before calling add_surface()
so that the buffer is created and the compositor knows its size.

Closes #53
Add four workspaces by default

Ugly hack: since we don't have settings for it we create four
workspaces this way even if it's horrible.
Separate screensaver interface from desktop shell protocol

Move screensaver interface in a separate file.
Update Weston plugin

Synchronize with Orbital compositor plugin.

Issue: #49
Protocol changes for Weston plugin

Apply our protocol changes.

Issue: #49