shell: Handle the desktop shell client destroy signal

Set the internal pointer for the client to NULL. This fixes a
segmentation fault at shutdown, where the shell would hang up before
and cause libwayland to call wl_client_destroy(). When the shell was
destroyed later, another call to wl_client_destroy() would cause the
crash.

https://bugs.freedesktop.org/show_bug.cgi?id=72550
diff --git a/desktop-shell/shell.h b/desktop-shell/shell.h
index d7c34fc..7a8194d 100644
--- a/desktop-shell/shell.h
+++ b/desktop-shell/shell.h
@@ -92,6 +92,7 @@
 		struct weston_process process;
 		struct wl_client *client;
 		struct wl_resource *desktop_shell;
+		struct wl_listener client_destroy_listener;
 
 		unsigned deathcount;
 		uint32_t deathstamp;