man: document four basic slices
man: document systemd-run
hwdb: allow list of lookup keys per given record

This allows to specify:
  dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Model 231*:pvr*
  dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Series 12*:pvr*
   KEY_A=value
   KEY_B=value

Instead of:
  dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Model 231*:pvr*
   KEY_A=value
   KEY_B=value

  dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Series 12*:pvr*
   KEY_A=value
   KEY_B=value
udev: add builtin 'keyboard' to manage key mappings
update TODO
cgroup: downgrade error message when we cannot remove a cgroup to debug

Some units set KillMode=none to survive the initrd→rootfs transition. We
cannot remove their cgroups, but that shouldn't really be considered an
issue, so let's downgrade the error message.
core: serialize/deserialize bus subscribers
core: while we are reloading don't suppress bus signals

While we are reloading we shouldn't suppress adding units to the bus
queue when there are no subscribers, simply because we might not have
deserialized the subscribers list yet. Hence, during reloading always
assume we have subscribers.
scope: don't require an initialized PIDs set when deserializing

When a scope unit is created due to deserialization rather than client
request don't enforce that the PIDs set must be non-empty, since the
cgroup is already populated.
systemctl: suppress error messages when checking whether a unit needs to be reloaded
systemctl: suppress error message when doing "systemctl daemon-reexec"

When we issue a reexecution request via the private socket we need to
expect a "Disconnected" in addition to "NoReply" when the connection is
terminated.
core: send out "Reloading" signal before and after doing a full reload/reexec of PID 1

Since we'll unload all units/job during a reload, and then readd them it
is really useful for clients to be aware of this phase hence sent a
signal out before and after. This signal is called "Reloading" (despite
the fact that it is also sent out during reexecution, which we consider
a special case in this context) and has one boolean parameter which is
true for the signal sent before the reload, and false for the signal
after the reload. The UnitRemoved/JobRremoved and UnitNew/JobNew due to
the reloading are guranteed to be between the pair of Reloading
messages.
unit: save description/slice of transient units to /run

This is necessary so that these properties survive a daemon reload.
unit: when deserializing cgroup path add it back into cgroup hashmap

Also, properly remove cgroup path from hashmap when freeing unit.
logind: don't misunderstand UnitRemoved signals during reloading

When PID 1 reloads the units logind/machined will see UnitRemoved
signals for all units. Instead of trusting these immediately, let's
check the actual unit state before considering a unit gone, so that
reloading PID 1 is not mistaken as the end of all sessions.
logind: when creating the scope job fails, return this immediately to the client that wants to register the session

Otherwise we'll hanging for the job to finish without any job existing.

Similar, for machined.
user-sessions: rely on PID 1 to kill sessions

As we want to centralized cgroup access we should stop killing the user
sessions directly from the systemd-user-sessions service. Instead, rely
on PID 1 doing this by adding the right ordering dependencies to the
session scope units.
update TODO
cgroup: when uninstalling agent, actually turn it off first
core: uninstall cgroup agent only if we are running outside of a container

Since the cgroupfs is currently not virtualized for containers we
shouldn't reset the hosts agent from the container.