compositor: Move surface color state to gles2-renderer.

This moves the surface color state into gles2-renderer. To do this it
adds two new weston_renderer functions. create_surface to be able to
create per-surface renderer state, and surface_set_color to set the
color of a surface and changes it to a color surface.
diff --git a/src/compositor.c b/src/compositor.c
index 83bd244..bd95e8c 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -237,6 +237,11 @@
 	surface->alpha = 1.0;
 	surface->pitch = 1;
 
+	if (compositor->renderer->create_surface(surface) < 0) {
+		free(surface);
+		return NULL;
+	}
+
 	surface->num_textures = 0;
 	surface->num_images = 0;
 	pixman_region32_init(&surface->texture_damage);
@@ -276,11 +281,7 @@
 weston_surface_set_color(struct weston_surface *surface,
 		 float red, float green, float blue, float alpha)
 {
-	surface->color[0] = red;
-	surface->color[1] = green;
-	surface->color[2] = blue;
-	surface->color[3] = alpha;
-	surface->shader = &surface->compositor->solid_shader;
+	surface->compositor->renderer->surface_set_color(surface, red, green, blue, alpha);
 }
 
 WL_EXPORT void