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-wayland.c b/compositor/compositor-wayland.c
index e289a29..fa630bc 100644
--- a/compositor/compositor-wayland.c
+++ b/compositor/compositor-wayland.c
@@ -507,6 +507,12 @@
 		wl_display_iterate(c->parent.display, WL_DISPLAY_WRITABLE);
 }
 
+static void
+wayland_destroy(struct wlsc_compositor *ec)
+{
+	free(ec);
+}
+
 struct wlsc_compositor *
 wayland_compositor_create(struct wl_display *display, int width, int height)
 {
@@ -556,6 +562,7 @@
 	if (c->parent.wl_source == NULL)
 		return NULL;
 
+	c->base.destroy = wayland_destroy;
 	c->base.authenticate = wayland_authenticate;
 	c->base.present = wayland_compositor_present;