Fix simple-egl tear-down order to prevent a crash on exit time

wl_egl_window_destory() destroys the window handle that
dri2_destroy_surface() later uses when eglTerminate() is called.

Reordering the tear down order prevents such case from occuring.
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index 26ebe5c..f4468b7 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -146,11 +146,6 @@
 static void
 fini_egl(struct display *display)
 {
-	/* Required, otherwise segfault in egl_dri2.c: dri2_make_current()
-	 * on eglReleaseThread(). */
-	eglMakeCurrent(display->egl.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
-		       EGL_NO_CONTEXT);
-
 	eglTerminate(display->egl.dpy);
 	eglReleaseThread();
 }
@@ -330,6 +325,12 @@
 static void
 destroy_surface(struct window *window)
 {
+	/* Required, otherwise segfault in egl_dri2.c: dri2_make_current()
+	 * on eglReleaseThread(). */
+	eglMakeCurrent(window->display->egl.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
+		       EGL_NO_CONTEXT);
+
+	eglDestroySurface(window->display->egl.dpy, window->egl_surface);
 	wl_egl_window_destroy(window->native);
 
 	wl_shell_surface_destroy(window->shell_surface);