compositor: Use a virtual destructor when shutting down

Backend can now rely on their destroy function getting called on shutdown,
so reset tty etc there instead of handling SIGTERM twice.
diff --git a/compositor/compositor-x11.c b/compositor/compositor-x11.c
index 4cf9bf8..3aa2475 100644
--- a/compositor/compositor-x11.c
+++ b/compositor/compositor-x11.c
@@ -643,6 +643,12 @@
 	return dri2_authenticate((struct x11_compositor *) c, id);
 }
 
+static void
+x11_destroy(struct wlsc_compositor *ec)
+{
+	free(ec);
+}
+
 struct wlsc_compositor *
 x11_compositor_create(struct wl_display *display, int width, int height)
 {
@@ -686,6 +692,7 @@
 				     WL_EVENT_READABLE,
 				     x11_compositor_handle_event, c);
 
+	c->base.destroy = x11_destroy;
 	c->base.authenticate = x11_authenticate;
 	c->base.present = x11_compositor_present;