Don't run the greeter as root

Run the greeter as a non privileged user. I harcoded this to be called sddm
.
Right now if that user doesn't exist it just continues on as root anyway, with a warning.
Ideally I'd like to just qFatal at this point, but I think we should allow time for people to update their packaging and setups without breaking logging in.

Changes ended up being quite intrusive over lots of bits of code, each individual commit is more manageable though.