Update compositor shutdown code

Adds a general wlsc_compositor_shutdown() function that all output
backends call when shutting down.  wlsc_compositor_shutdown() will call
a new 'destroy' method of each output to perform backend-specific
cleanup (e.g., turning off the hardware cursor in the DRM compositor).

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
diff --git a/compositor/compositor-x11.c b/compositor/compositor-x11.c
index 0825f1a..f959e78 100644
--- a/compositor/compositor-x11.c
+++ b/compositor/compositor-x11.c
@@ -209,6 +209,11 @@
 	return -1;
 }
 
+static void
+x11_output_destroy(struct wlsc_output *output_base)
+{
+	return;
+}
 
 static void
 x11_output_set_wm_protocols(struct x11_output *output)
@@ -408,6 +413,7 @@
 	output->base.prepare_scanout_surface =
 		x11_output_prepare_scanout_surface;
 	output->base.set_hardware_cursor = x11_output_set_cursor;
+	output->base.destroy = x11_output_destroy;
 
 	wl_list_insert(c->base.output_list.prev, &output->base.link);
 
@@ -679,6 +685,8 @@
 static void
 x11_destroy(struct wlsc_compositor *ec)
 {
+	wlsc_compositor_shutdown(ec);
+
 	free(ec);
 }