strv: add an additional overflow check when enlarging strv()s

https://bugs.freedesktop.org/show_bug.cgi?id=76745
strv: use realloc_multiply() to check for multiplication overflow

This could overflow on 32bit, where size_t is the same as unsigned.
sd-bus: sync kdbus.h (ABI break)

In kdbus.h, the following details changed:

 * All commands gained a 'kernel_flags' field to report the flags supported
   by the driver. Before, this was done in the 'flags' field in a
   bidirectional way, which turned out to be a problem for the code in
   sd-bus, as many parts of it reuse the same ioctl struct more than once
   and consider them to be owned by userspace.

 * Name listings are now returned by a new struct instead of reusing struct
   kdbus_cmd_name for that matter. This way, we don't add more unneeded
   fields to it and make the API cleaner.

 * 'conn_flags' was renamed to 'flags' in struct kdbus_cmd_hello to make
   the API a bit more unified.
sd-bus: sync kdbus.h (API change: switch to absolute timeouts)

kdbus_msg.timeout_ns now takes an absolute value, based on CLOCK_MONOTONIC,
in order to eventually support automatically restarted syscalls.

Signed-off-by: Daniel Mack <daniel@zonque.org>
bus-proxyd: keep track of names acquired by legacy client

Store names successfully acquired by the legacy client into a hashmap.
We need to take these names into account when checking for send policies.
bus-proxyd: enforce policy for Hello messages
bus-proxyd: enforce policy for name ownership
bus-policy: enforce policy for method calls
bus-policy: move name list iteration to policy users

We need to figure out which of the possible names satisfied the policy,
so we cannot do the iteration in check_policy_item() but have to leave it
to the users.

Test cases amended accordingly.