libhawaiishell: Add XdgDesktopFile

Remove libqtxdg submodule and add XdgDesktopFile directly to
libhawaiishell, this would make Fedora packagers happier since
submodules are not allowed by policy.

If we will need more things from libqtxdg we'll link to the library.
hawaii.xml: Move set_background back to wl_hawaii_shell

The wl_hawaii_shell_surface interface is accessible from other
applications because it can be bound multiple times so we don't really
mean to let other applications besides the shell assign the background
role to any of their surfaces.
server: Follow set_background move

The set_background request was moved back to wl_hawaii_shell.
compositor: Follow set_background move

The set_background request was moved back to wl_hawaii_shell.
client: Follow set_background move

The set_background request was moved back to wl_hawaii_shell.
libhawaiishell: Add background plugin type

We now support background plugins.

Issue: #68
backgrounds-wallpaper: Add wallpaper plugin

Issue: #68
backgrounds-solid: Add solid background plugin

Issue: #68
backgrounds-gradient: Add gradient background plugin

Issue: #68
Add background plugins to the build

Issue: #68
libhawaiishell: Add background plugin to shell settings

This setting contains the background plugin identifier.

Issue: #68
client: Background view

Create a background view for each screen that loads background plugins.

Issue: #68
libhawaiishell: PluginLoader now recognize types from metadata

With JSON metadata we now have different types.
client: Fix shell package type

Follow latest JSON metadata work.
libhawaiishell: Support background packages in PluginLoader

Issue: #68
hawaii.xml: Add wl_hawaii_shell.set_desktop request

This request assign the desktop role to surfaces with the actual desktop
view.

Issue: #68
server: Set desktop surface role

Create a layer for desktop surfaces on top of background and assign the
desktop role to such surfaces.

Issue: #68
desktop: Don't load background anymore

Background is loaded by another view now.

Issue: #68
libhawaiishell: Remove background settings class

Background settings are now per plugin.

Issue: #68
libhawaiishell: Plugin type enum

Put plugin types in an enum instead of using strings.