xwayland: Switch to SIGUSR1 to know when the X server has finished init

This is effectively the same, but since we lose the xserver.xml protocol
in the new XWayland DDX, we have to use SIGUSR1 anyway, so might as well
switch over now.
xwayland: Switch to the new Xwayland DDX
wayland: Move the commit implementation to the top

We're going to need to expose commit as a public method for XWayland
support, so decouple it from the handler implementation.
wayland: Move surface_set_buffer back into the commits

For XWayland support, we need to delay the buffer set until after
we do the typechecking, as we need to bail out early in that case.
xwayland: Fix rendering

Since we get the ClientMessage after the surface is created, there's
no good way to synchronize the two streams. In this case, what we
need to do is delay the surface commit until after we get the
ClientMessage. Ideally, we'd be using a better surface system overall
where committing the surface didn't depend on what type it is, but
oh well, this is a good short-term hack for now.