data-device: Move all drag-related fields out of weston_seat

We can now allocate a temporary weston_drag structure that we keep all
this drag-and-drop related state in.
diff --git a/src/compositor.h b/src/compositor.h
index b6e62a6..2ea3c4a 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -444,24 +444,13 @@
 	enum weston_keyboard_modifier modifier_state;
 	struct weston_surface *saved_kbd_focus;
 	struct wl_listener saved_kbd_focus_listener;
+	struct wl_list drag_resource_list;
 
 	uint32_t selection_serial;
 	struct wl_data_source *selection_data_source;
 	struct wl_listener selection_data_source_listener;
 	struct wl_signal selection_signal;
 
-	struct wl_list drag_resource_list;
-	struct wl_client *drag_client;
-	struct wl_data_source *drag_data_source;
-	struct wl_listener drag_data_source_listener;
-	struct weston_surface *drag_focus;
-	struct wl_resource *drag_focus_resource;
-	struct wl_listener drag_focus_listener;
-	struct weston_pointer_grab drag_grab;
-	struct weston_surface *drag_surface;
-	struct wl_listener drag_surface_destroy_listener;
-	int32_t drag_dx, drag_dy;
-
 	uint32_t num_tp;
 
 	void (*led_update)(struct weston_seat *ws, enum weston_led leds);