compositor: keep track of the weston_layer a weston_view is in

This introduces a new struct, weston_layer_entry, which is now used
in place of wl_list to keep the link for the layer list in weston_view
and the head of the list in weston_layer.
weston_layer_entry also has a weston_layer*, which points to the layer
the view is in or, in the case the entry it's the head of the list, to
the layer itself.
diff --git a/desktop-shell/input-panel.c b/desktop-shell/input-panel.c
index 7623f6c..47bd73c 100644
--- a/desktop-shell/input-panel.c
+++ b/desktop-shell/input-panel.c
@@ -75,8 +75,8 @@
 		weston_view_set_position(ipsurf->view, x, y);
 	}
 
-	wl_list_insert(&shell->input_panel_layer.view_list,
-		       &ipsurf->view->layer_link);
+	weston_layer_entry_insert(&shell->input_panel_layer.view_list,
+	                          &ipsurf->view->layer_link);
 	weston_view_geometry_dirty(ipsurf->view);
 	weston_view_update_transform(ipsurf->view);
 	weston_surface_damage(ipsurf->surface);
@@ -135,7 +135,8 @@
 		wl_list_remove(&shell->input_panel_layer.link);
 
 	wl_list_for_each_safe(view, next,
-			      &shell->input_panel_layer.view_list, layer_link)
+			      &shell->input_panel_layer.view_list.link,
+			      layer_link.link)
 		weston_view_unmap(view);
 }