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.
Don't set the DISPLAY environment to the process that starts the dislay.
Don't pass a display ID to X, let X figure out what ID to use
Merge pull request #314 from davidedmundson/x_fd

Replace signal handling method of detecting X startup with FD method