data-device: Change resources in wl_data_offer and wl_data_source to pointers.

Because of its links to selection.c and xwayland, a destroy_signal field
was also added to wl_data_source.  Before selection.c and xwayland were
manually initializing the resource.destroy_signal field so that it could be
used without a valid resource.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
diff --git a/src/compositor.h b/src/compositor.h
index 774fb96..297f971 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -271,13 +271,14 @@
 };
 
 struct wl_data_offer {
-	struct wl_resource resource;
+	struct wl_resource *resource;
 	struct wl_data_source *source;
 	struct wl_listener source_destroy_listener;
 };
 
 struct wl_data_source {
-	struct wl_resource resource;
+	struct wl_resource *resource;
+	struct wl_signal destroy_signal;
 	struct wl_array mime_types;
 
 	void (*accept)(struct wl_data_source *source,