Introduce runtime directory and use it for Xauthority

Runtime directory is meant for temporary files so use it to store the
Xauthority file.  We leave state directory regardless because it might
be useful in the future.

It's not configurable by the user to avoid messing around with delicate
configuration options and gives us a predictable location.

However in test mode we usually run as an unprivileged user who doesn't
have access to system-wide directories so we try to find a suitable path.

First we look for the current user runtime directory, if it's not
available we try with the temporary directory.
Log display server command line

For debugging purpose.
Turn DisplayServer into an abstract class

Move Xorg specific code to XorgDisplayServer, this will allow us to
support multiple display server.
Add an utility function to change owner to the sddm user
Define qt4_add_dbus_adaptor as a wrapper to the Qt 5 counterpart

Don't duplicate code in other CMakeLists.txt files and just use the
qt4_add_dbus_adaptor macro all the time.
One CMakeLists.txt file for each subdirectory

It's easier to work with separate CMakeLists.txt files, one for each
subdirectory.