Release Wayland surface when WaylandSyncProvider is destroyed.

Currently, we send an IPC message to destroy EGLWindow. We make all the effort
to ensure that this is sent after the associated GLSurface is destroyed.
We could use WaylandSyncProvider to track the lifetime of GLSurface and make
sure EGLWindow is destroyed as soon as GLSurface is destroyed. This removes
the need for an IPC call and also ensure the EGLWindow is destroyed as soon
as GLSurface is destroyed. This also fixes a rendering issue with popups.

Fixes #184 #187