shell: destroy desktop_shell client on exit

If the compositor is shutting down while the desktop_shell still exists,
we leaked some resources by not destroying the client record.

Call wl_client_destroy() on the desktop_shell client, if it exists
during shutdown. Fixes some Valgrind errors.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
diff --git a/compositor/shell.c b/compositor/shell.c
index 0f44add..4ff5306 100644
--- a/compositor/shell.c
+++ b/compositor/shell.c
@@ -1238,6 +1238,9 @@
 {
 	struct wl_shell *shell = container_of(base, struct wl_shell, shell);
 
+	if (shell->child.client)
+		wl_client_destroy(shell->child.client);
+
 	free(shell->screensaver.path);
 	free(shell);
 }
@@ -1296,9 +1299,6 @@
 	wlsc_compositor_add_binding(ec, 0, BTN_LEFT, 0,
 				    click_to_activate_binding, ec);
 
-
-
-
 	ec->shell = &shell->shell;
 
 	return 0;