compositor: Remove wl_output-global on unplug

Or we would segfault when a client binds to a output thats already
destroyed.
diff --git a/src/compositor.c b/src/compositor.c
index 96296cc..8686c1d 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2224,8 +2224,12 @@
 WL_EXPORT void
 weston_output_destroy(struct weston_output *output)
 {
+	struct weston_compositor *c = output->compositor;
+
 	pixman_region32_fini(&output->region);
 	pixman_region32_fini(&output->previous_damage);
+
+	wl_display_remove_global(c->wl_display, output->global);
 }
 
 WL_EXPORT void
@@ -2313,8 +2317,9 @@
 
 	wl_list_init(&output->frame_callback_list);
 
-	wl_display_add_global(c->wl_display,
-			      &wl_output_interface, output, bind_output);
+	output->global =
+		wl_display_add_global(c->wl_display, &wl_output_interface,
+				      output, bind_output);
 }
 
 static void
diff --git a/src/compositor.h b/src/compositor.h
index 1b37356..9022313 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -73,6 +73,7 @@
 
 struct weston_output {
 	struct wl_list link;
+	struct wl_global *global;
 	struct weston_compositor *compositor;
 	struct weston_matrix matrix;
 	struct wl_list frame_callback_list;