Old versions of libdbus-1 API don't have DBusBasicValue as a public typedef

We have to define it ourselves to prevent build errors.
Only attempt to get int64 and uint64 out of dbus if it supports it
Do not attempt to get file descriptors out of DBus values

We have no need for this functionality and it may not be supported
depending on the libdbus version we are using.
Fixed SIGSEGV with non-existant systemd units or units that don't depend on anything