compositor: Track which plane a surface is on

We start tracking which hardware plane a surface is displayed on, which
lets us avoid generating damage when a hardware overlay/cursor is moved
around.
diff --git a/src/compositor.h b/src/compositor.h
index 9df1933..22e5eb8 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -222,7 +222,6 @@
 	int32_t hotspot_x, hotspot_y;
 	struct wl_list link;
 	enum weston_keyboard_modifier modifier_state;
-	int hw_cursor;
 	struct wl_surface *saved_kbd_focus;
 	struct wl_listener saved_kbd_focus_listener;
 
@@ -382,6 +381,10 @@
  * transformation in global coordinates, add it to the tail of the list.
  */
 
+enum {
+	WESTON_PLANE_PRIMARY
+};
+
 struct weston_surface {
 	struct wl_surface surface;
 	struct weston_compositor *compositor;
@@ -398,6 +401,7 @@
 	GLfloat opaque_rect[4];
 	GLfloat alpha;
 	int blend;
+	int plane;
 
 	/* Surface geometry state, mutable.
 	 * If you change anything, set dirty = 1.