Replace signal handling method of detecting X startup with FD method

Using SIGUSR1 to detect when X has started doesn't work with multi seat
as we end up starting two X servers in such fast succession that one
signal gets lost.

Xorg also supports an approach where we pass a file descriptor as an
argument and X will write the used dislay ID (i.e :0) into this file
when it is ready. Apparently this is the preferred approach for
detecting X startup.