util: Generalize surface animation code

Too much duplicated code here, and we're about to introduce another
animation.
diff --git a/src/shell.c b/src/shell.c
index 80fdf72..b3a7e68 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1923,6 +1923,8 @@
 	wl_list_insert(&shell->panel_layer.surface_list, &surface->surface->layer_link);
 	surface->surface->output = surface->output;
 	weston_surface_damage(surface->surface);
+
+	weston_zoom_run(surface->surface, 0.8, 1.0, NULL, NULL);
 }
 
 static void