cgroup: readd proper cgroup empty tracking
cgroup: implicitly add units to GC queue when their cgroups run empty
service: correct service bus introspection for timeouts
dbus: expose cgroup properties in introspection everywhere
snapshot: snapshots are just a special kind of transient units now
systemctl: show per-unit cgroup tree correctly following the new property
core: add new "scope" unit type for making a unit of pre-existing processes

"Scope" units are very much like service units, however with the
difference that they are created from pre-existing processes, rather
than processes that systemd itself forks off. This means they are
generated programmatically via the bus API as transient units rather
than from static configuration read from disk. Also, they do not provide
execution-time parameters, as at the time systemd adds the processes to
the scope unit they already exist and the parameters cannot be applied
anymore.

The primary benefit of this new unit type is to create arbitrary cgroups
for worker-processes forked off an existing service.

This commit also adds a a new mode to "systemd-run" to run the specified
processes in a scope rather then a transient service.