core: Don't unmap XWayland windows without buffers on visibility update
18be74ed was changing meta_window_should_be_showing_on_workspace() to only show XWayland windows when they have buffers to prevent starting transitions with a seemingly black window.
This however did not just delay the transition, but when called in meta_window_update_visibility() could result in the X11 window getting unmapped again if the call happens before there is a buffer. Then, depending on the client, the window would either remain hidden or if the client tries to map the window again, this would repeat the process, triggering the closing transition every time.
This commit instead just hides the XWayland window from the compositor but keeps the corresponding X11 window mapped while it does not have a buffer yet.
Related: #2611 (closed)
Closes: #2965 (closed)
Closes: #2820 (closed)
Closes: #2867 (closed)