compositor: first destroy backend routines and then display

I caught this when an evdev device fd was trying to trigger the main event
loop, which was already free'd and causing an invalid read.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
diff --git a/compositor/compositor.c b/compositor/compositor.c
index fc75689..a87c658 100644
--- a/compositor/compositor.c
+++ b/compositor/compositor.c
@@ -2092,9 +2092,9 @@
 
 	if (ec->has_bind_display)
 		ec->unbind_display(ec->display, display);
-	wl_display_destroy(display);
 
 	ec->destroy(ec);
+	wl_display_destroy(display);
 
 	return 0;
 }