pixman-renderer, gl-renderer: Destroy debug bindings on clean up

Also make sure backends destroy the renderers before shutting down the
compositor to avoid a double call to weston_binding_destroy().

This is a step towards making renderers switchable during runtime.
diff --git a/src/gl-renderer.c b/src/gl-renderer.c
index 2cb24fa..0f0b5f7 100644
--- a/src/gl-renderer.c
+++ b/src/gl-renderer.c
@@ -85,6 +85,8 @@
 	struct weston_renderer base;
 	int fragment_shader_debug;
 	int fan_debug;
+	struct weston_binding *fragment_binding;
+	struct weston_binding *fan_binding;
 
 	EGLDisplay egl_display;
 	EGLContext egl_context;
@@ -1567,6 +1569,9 @@
 	wl_array_release(&gr->indices);
 	wl_array_release(&gr->vtxcnt);
 
+	weston_binding_destroy(gr->fragment_binding);
+	weston_binding_destroy(gr->fan_binding);
+
 	free(gr);
 }
 
@@ -1859,10 +1864,14 @@
 	if (compile_shaders(ec))
 		return -1;
 
-	weston_compositor_add_debug_binding(ec, KEY_S,
-					    fragment_debug_binding, ec);
-	weston_compositor_add_debug_binding(ec, KEY_F,
-					    fan_debug_repaint_binding, ec);
+	gr->fragment_binding =
+		weston_compositor_add_debug_binding(ec, KEY_S,
+						    fragment_debug_binding,
+						    ec);
+	gr->fan_binding =
+		weston_compositor_add_debug_binding(ec, KEY_F,
+						    fan_debug_repaint_binding,
+						    ec);
 
 	weston_log("GL ES 2 renderer features:\n");
 	weston_log_continue(STAMP_SPACE "read-back format: %s\n",