session: Always try to ensure dbus is around for the session

Although some display managers happily invoke dbus correctly after
initialising the seat, some do not. In this instance, we'll check whether
we have a dbus session address, otherwise we replace ourselves with
a dbus-launch invoked version.

This will *hopefully* fix some of the funky logout issues found on
some distros with Budgie.