compositor: fix crash when a drag surface is destroyed during the drag

This can happen for instance if the client that started the drag
crashes. Weston would crash because of the invalid surface pointed by
device->drag_surface.

Fix this by reseting the drag surface to nil on a destroy listener.
diff --git a/src/compositor.h b/src/compositor.h
index d0b7206..6f46249 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -107,6 +107,7 @@
 	struct weston_compositor *compositor;
 	struct weston_surface *sprite;
 	struct weston_surface *drag_surface;
+	struct wl_listener drag_surface_destroy_listener;
 	int32_t hotspot_x, hotspot_y;
 	struct wl_list link;
 	uint32_t modifier_state;