compositor: Only send release event in response to wl_surface.attach

The current semantics would implicitly attach the most recently attached
buffer at commit time and send a release event when the buffer enventually
was released.  The implicit attach is a little too subtle though and this
patch changes the semantics to always only send release events in response
to an attach event.  As a consequence, once a compositor releases a buffer,
it no longer has a reference to it and wl_surfcea.damage is undefined.
Thus, the client side visible change is that damage request must always
be preceeded by a wl_surface.attach request, to ensure there's a valid buffer,
even if that means attaching the same buffer again.
diff --git a/clients/simple-shm.c b/clients/simple-shm.c
index c2eda61..f187b10 100644
--- a/clients/simple-shm.c
+++ b/clients/simple-shm.c
@@ -269,11 +269,7 @@
 
 	paint_pixels(buffer->shm_data, 20, window->width, window->height, time);
 
-	if (window->prev_buffer != buffer) {
-		wl_surface_attach(window->surface, buffer->buffer, 0, 0);
-		window->prev_buffer = buffer;
-	}
-
+	wl_surface_attach(window->surface, buffer->buffer, 0, 0);
 	wl_surface_damage(window->surface,
 			  20, 20, window->width - 40, window->height - 40);