bus-driverd: allow running for the user bus

Accept a command line argument, --user, that instructs the bus
driver to connect to the user bus instead of the system bus.
For consistency with other services, --system, --help and --version
are recognized too.
Fix dependencies of triggers for the user manager

Extend the build system to install .wants/ links for the user trigger
(socket, path, timer and busname) units too, and make sure they
are pulled in by default.target.
units: differentiate the bus proxy and bus driver for the user manager

The bus proxy and bus driver need to connect to the user bus when
started by the user manager, so they need different service files.
Also, they cannot have their capability bounding set restricted
(because the unprivileged systemd can't do that).
core: don't add a dependency to dbus.socket for the user bus

When running off dbus-daemon, the user bus is not in a well-defined
location, and is sometimes used as the session bus or something
entirely different. In any case, it is safe to assume the bus already
exists.
When running off kdbus, there is no dbus.socket at all.

This fixes running dbus-activated services in a kdbus environment
from the user manager.
core: always set up kdbus, even when a bus already exists

If we're running as the user manager, the system manager set
a DBUS_SESSION_BUS_ADDRESS in the environment for legacy services,
but that should not stop us from setting a bus, otherwise it
points to nothing.
core: put user generated units in the runtime directory

Use XDG_RUNTIME_DIR/systemd/generator (like /run/systemd/generator
is used by the system manager), for better debuggability.
dbus1-generator: read user service files from XDG_DATA_DIRS

This is where the dbus-daemon would read them from, and it helps
in case the variable is overridden locally (for example in a
jhbuild environment).
Also, while we're there, fix the compatibility for system services
to take /usr/local into account too.
dbus1-generator: don't generate a want dependency for busnames.target

Hard-code it into basic.target instead. There is no harm in pulling
in busnames.target when running on dbus-daemon anyway (in that case,
there are no .busname units, or they do nothing)
dbus1-generator: fix the starter address environment variable

This is for legacy dbus1 clients, so we must provide a UNIX socket
path, in addition to kdbus where supported.
Also, use the correct syntax for kdbus.