sd-dhcp-client: make sure timers fire immediately

The default slack caused there to be a delay before timers fired. Solve it
by setting timers that should trigger immediately to trigger far in the past.

This brings down the ideal-case dhcp lease acquisition time from about 500ms to
about 50ms (over a veth pair, so no network latency involved).

All the rest of the time (except for ~0.5ms) is spent in the bind() call in,
dhcp_network_bind_raw_socket(). I don't know if there is anything to be done
about that though...
hwdb: update
timedated: update test address
core: drop CAP_MKNOD when PrivateDevices= is set
udate TODO
util: replace close_nointr_nofail() by a more useful safe_close()

safe_close() automatically becomes a NOP when a negative fd is passed,
and returns -1 unconditionally. This makes it easy to write lines like
this:

        fd = safe_close(fd);

Which will close an fd if it is open, and reset the fd variable
correctly.

By making use of this new scheme we can drop a > 200 lines of code that
was required to test for non-negative fds or to reset the closed fd
variable afterwards.
test
core: add new AcceptFD= setting to .busname units

AcceptFD= defaults to true, thus making sure that by default fd passing
is enabled for all activatable names. Since for normal bus connections
fd passing is enabled too by default this makes sure fd passing works
correctly regardless whether a service is already activated or not.

Making this configurable on both busname units and in bus connections is
messy, but unavoidable since busnames are established and may queue
messages before the connection feature negotiation is done by the
service eventually activated. Conversely, feature negotiation on bus
connections takes place before the connection acquires its names.

Of course, this means developers really should make sure to keep the
settings in .busname units in sync with what they later intend to
negotiate.
sd-bus: if we got a message with fds attached even though we didn't negotiate it, refuse to take it

This makes sure we don't mishandle if developers specificy a different
AcceptFileDescriptors= setting in .busname units then they set for the
bus connection in the activated program.
man: dcument sd_bus_negotiate_fds() and friends
update TODO
util: add new FOREACH_STRING() macro as syntactic sugar to iterate through a number of fixed strings
missing: define LO_FLAGS_PARTSCAN if it is missing

https://bugs.freedesktop.org/show_bug.cgi?id=76335
update kdbus.h
core: when creating an activating busname attach all metadata fields to the messages queued for it

This way we can be sure that the service the messages are ultimately
intended for finds all fields it might need.
update TODO
busname: introduce Activating directive

Add a new config 'Activating' directive which denotes whether a busname
is actually registered on the bus. It defaults to 'yes'.

If set to 'no', the .busname unit only uploads policy, which will remain
active as long as the unit is running.
update TODO
core: by default .busname units should be activating
sd-bus: add proper monitoring API