compositor: Split dnd setup up into weston_seat_start_drag()

This makes the drag-and-drop code available to in-weston data sources,
similar to how we can set a selection data source internally.  The
wl_data_device.start_drag entry point now calls this function after
validating protocol arguments.
diff --git a/src/compositor.h b/src/compositor.h
index 6db3c61..28757d9 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -392,6 +392,11 @@
 void
 weston_seat_set_selection(struct weston_seat *seat,
 			  struct weston_data_source *source, uint32_t serial);
+int
+weston_seat_start_drag(struct weston_seat *seat,
+		       struct weston_data_source *source,
+		       struct weston_surface *icon,
+		       struct wl_client *client);
 
 struct weston_xkb_info {
 	struct xkb_keymap *keymap;