Revert "compositor: Delay meta_compositor_add_window until the first show"

This reverts commit 4efe4483fbc7602e8358fda936074216a8e5544b.
Revert "window: Delay the showing of XWayland clients until set_window_id"

This reverts commit 59c8b949ad1b8712be7f1e90f8aaddac897da463.
wayland-surface: Rework construction / destruction yet again

This time, to make way for MetaSurfaceActorEmpty. This also fixes
destroy effects as a side effect. It still has issues if we try
to re-assign an actor that's already toplevel (e.g. somebody
re-popping up a menu that's already being destroyed), but this
will be fixed soon.

The idea here is that MetaWindowActor will do the unparenting of
the surface actor when it itself is destroyed. To prevent bad issues
with picking, we only make the surface actor reactive when it's
toplevel.
MetaSurfaceActor: move freeze accounting to MetaWindowActor

Turns out we only ever need to freeze/thaw whole windows, not
surfaces or subsurfaces.
This will allow removing the surface actor without losing
the count.
MetaWindowActor: survive having no MetaSurfaceActor

We need a MetaWaylandSurface to build a MetaSurfaceActor, but
we don't have one until we get the set_window_xid() call from
XWayland. On the other hand, plugins expect to see the window
actor right from when the window is created, so we need this
empty state.

Based on a patch by Jasper St. Pierre.