compositor: Introduce a weston_renderer object

Move the gles2 render functions to vfuncs on the renderer object.
diff --git a/src/compositor.c b/src/compositor.c
index dfef058..47d0ec5 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -188,7 +188,7 @@
 			     buffer_destroy_listener);
 
 	if (es->buffer && wl_buffer_is_shm(es->buffer))
-		gles2_renderer_flush_damage(es);
+		es->compositor->renderer->flush_damage(es);
 
 	es->buffer = NULL;
 }
@@ -752,7 +752,7 @@
 			weston_surface_unmap(es);
 	}
 
-	gles2_renderer_attach(es, buffer);
+	es->compositor->renderer->attach(es, buffer);
 	es->buffer = buffer;
 }
 
@@ -834,7 +834,7 @@
 			  pixman_region32_t *opaque)
 {
 	if (surface->buffer && wl_buffer_is_shm(surface->buffer))
-		gles2_renderer_flush_damage(surface);
+		surface->compositor->renderer->flush_damage(surface);
 
 	if (surface->transform.enabled) {
 		pixman_box32_t *extents;