Handle invalid and destroyed wl_egl_windows
We unconditionally require a wl_egl_window to be passed as the native window type, and do not permit a default window. The spec requires us to return EGL_BAD_NATIVE_WINDOW when doing this, rather than crashing.
Further, if an EGLSurface has already been created for an existing native window, we are required to return EGL_BAD_ALLOC.
It is entirely valid for an EGLSurface to outlive the native_window it was created from, provided that SwapBuffers and MakeCurrent return EGL_BAD_NATIVE_WINDOW. We don't have any facility to error on MakeCurrent, so just make sure we can bundle on safely through rendering for now, then return EGL_BAD_NATIVE_WINDOW from SwapBuffers.