compositor: Adapt to wl_surface going away

struct weston_surface is now the only surface type we have (in core, shell.c
has shell_surface, of course).  A lot of code gets simpler and we never
have to try to guess whether an API takes a wl_surface or a weston_surface.
diff --git a/src/compositor.c b/src/compositor.c
index a810fd2..f988a36 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -271,12 +271,12 @@
 	if (surface == NULL)
 		return NULL;
 
-	wl_signal_init(&surface->surface.resource.destroy_signal);
+	wl_signal_init(&surface->resource.destroy_signal);
 
 	wl_list_init(&surface->link);
 	wl_list_init(&surface->layer_link);
 
-	surface->surface.resource.client = NULL;
+	surface->resource.client = NULL;
 
 	surface->compositor = compositor;
 	surface->alpha = 1.0;
@@ -490,10 +490,10 @@
 	uint32_t left = es->output_mask & different;
 	struct weston_output *output;
 	struct wl_resource *resource = NULL;
-	struct wl_client *client = es->surface.resource.client;
+	struct wl_client *client = es->resource.client;
 
 	es->output_mask = mask;
-	if (es->surface.resource.client == NULL)
+	if (es->resource.client == NULL)
 		return;
 	if (different == 0)
 		return;
@@ -506,9 +506,9 @@
 		if (resource == NULL)
 			continue;
 		if (1 << output->id & entered)
-			wl_surface_send_enter(&es->surface.resource, resource);
+			wl_surface_send_enter(&es->resource, resource);
 		if (1 << output->id & left)
-			wl_surface_send_leave(&es->surface.resource, resource);
+			wl_surface_send_leave(&es->resource, resource);
 	}
 }
 
@@ -849,7 +849,7 @@
 	surface->geometry.parent_destroy_listener.notify =
 		transform_parent_handle_parent_destroy;
 	if (parent) {
-		wl_signal_add(&parent->surface.resource.destroy_signal,
+		wl_signal_add(&parent->resource.destroy_signal,
 			      &surface->geometry.parent_destroy_listener);
 		wl_list_insert(&parent->geometry.child_list,
 			       &surface->geometry.parent_link);
@@ -946,11 +946,9 @@
 	wl_list_remove(&surface->layer_link);
 
 	wl_list_for_each(seat, &surface->compositor->seat_list, link) {
-		if (seat->keyboard &&
-		    seat->keyboard->focus == &surface->surface)
+		if (seat->keyboard && seat->keyboard->focus == surface)
 			weston_keyboard_set_focus(seat->keyboard, NULL);
-		if (seat->pointer &&
-		    seat->pointer->focus == &surface->surface)
+		if (seat->pointer && seat->pointer->focus == surface)
 			weston_pointer_set_focus(seat->pointer,
 						 NULL,
 						 wl_fixed_from_int(0),
@@ -969,8 +967,7 @@
 destroy_surface(struct wl_resource *resource)
 {
 	struct weston_surface *surface =
-		container_of(resource,
-			     struct weston_surface, surface.resource);
+		container_of(resource, struct weston_surface, resource);
 	struct weston_compositor *compositor = surface->compositor;
 	struct weston_frame_callback *cb, *next;
 
@@ -1012,11 +1009,10 @@
 weston_surface_destroy(struct weston_surface *surface)
 {
 	/* Not a valid way to destroy a client surface */
-	assert(surface->surface.resource.client == NULL);
+	assert(surface->resource.client == NULL);
 
-	wl_signal_emit(&surface->surface.resource.destroy_signal,
-		       &surface->surface.resource);
-	destroy_surface(&surface->surface.resource);
+	wl_signal_emit(&surface->resource.destroy_signal, &surface->resource);
+	destroy_surface(&surface->resource);
 }
 
 static void
@@ -1532,15 +1528,15 @@
 		return;
 	}
 
-	surface->surface.resource.destroy = destroy_surface;
+	surface->resource.destroy = destroy_surface;
 
-	surface->surface.resource.object.id = id;
-	surface->surface.resource.object.interface = &wl_surface_interface;
-	surface->surface.resource.object.implementation =
+	surface->resource.object.id = id;
+	surface->resource.object.interface = &wl_surface_interface;
+	surface->resource.object.implementation =
 		(void (**)(void)) &surface_interface;
-	surface->surface.resource.data = surface;
+	surface->resource.data = surface;
 
-	wl_client_add_resource(client, &surface->surface.resource);
+	wl_client_add_resource(client, &surface->resource);
 }
 
 static void