compositor: Keep a z-ordered list of planes

This let us clear a plane's opaque region without adding code in the
backend, and will be used in a following commit to change how we track
damage.
diff --git a/src/compositor.h b/src/compositor.h
index 4a0c1e3..89f0639 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -269,6 +269,7 @@
 	pixman_region32_t damage;
 	pixman_region32_t opaque;
 	int32_t x, y;
+	struct wl_list link;
 };
 
 struct weston_renderer {
@@ -314,6 +315,7 @@
 	struct wl_list seat_list;
 	struct wl_list layer_list;
 	struct wl_list surface_list;
+	struct wl_list plane_list;
 	struct wl_list key_binding_list;
 	struct wl_list button_binding_list;
 	struct wl_list axis_binding_list;
@@ -577,6 +579,11 @@
 weston_plane_release(struct weston_plane *plane);
 
 void
+weston_compositor_stack_plane(struct weston_compositor *ec,
+			      struct weston_plane *plane,
+			      struct weston_plane *above);
+
+void
 weston_output_finish_frame(struct weston_output *output, uint32_t msecs);
 void
 weston_output_schedule_repaint(struct weston_output *output);