bus/rtnl: silence clang warnings
bus: fix error-path in bus_map_all_properties()

We shouldn't return positive integers on errors. Fix the typo by removing
the negation.
event: clear pending-state when re-arming timers

If a timer fires and is marked pending, but an application re-arms it
before it is dispatched, we now clear the pending state.

This fixes a bug where an application arms a timer, which fires and is
marked pending. But before it is dispatched, the application loses
interest in it and disables it. Now if the timer is re-armed and
re-enabled later, it will be immediately dispatched as it is still marked
pending.

This behavior is unexpected, so avoid it by clearing pending state when
re-arming timers. Note that applications have no way to clear pending
state themselves, so there's no current workaround.
conf-parser: don't leak section names

If we encounter an unknown section, we must free the previous section before
clearing the pointer.
install: use const where we can
include: make direct includion of _sd-common.h harder
macro: change assert_cc() so that it can appear outside of functions
macro: add _unlikely_() to assert_return()

As the name indicates assert_return() is really just for assertions,
i.e. where it's a programming error if the assertion does not hold.
Hence it is safe to add _unlikely_() decorators for the expression to
check.
hwclock: modernizations
calendar: support 'yearly' and 'annually' names the same way as cron
libudev: always return valid negative error codes on API functions
libudev: always return NULL in _unref() APIs

Returning anything else but NULL would suggest the caller's reference
might still be valid, but it isn't, because the caller just invoked
_unref() after all.

This turns the return value into a typesafe shortcut that allows
unreffing and resetting a reference in one line. In contrast to
solutions for this which take a pointer to a pointer to accomplish the
same this solution is just syntactic sugar the developer can make use of
but doesn't have to, and this is particularly useful when immediately
unreffing objects returned by function calls.
bus: sd_bus_error_setxyz calls should always return the error as errno style negative int
bus: bump serial number counter when sending already sealed messages
bus: add sd_bus_send_to() API call
test: exit early if we would conflict with running user systemd
install: when determining where default.target points to, accept a file instead of a symlink, too
hashmap: be a bit more conservative with pre-allocating hash tables and items
core: convert PID 1 to libsystemd-bus

This patch converts PID 1 to libsystemd-bus and thus drops the
dependency on libdbus. The only remaining code using libdbus is a test
case that validates our bus marshalling against libdbus' marshalling,
and this dependency can be turned off.

This patch also adds a couple of things to libsystem-bus, that are
necessary to make the port work:

- Synthesizing of "Disconnected" messages when bus connections are
  severed.

- Support for attaching multiple vtables for the same interface on the
  same path.

This patch also fixes the SetDefaultTarget() and GetDefaultTarget() bus
calls which used an inappropriate signature.

As a side effect we will now generate PropertiesChanged messages which
carry property contents, rather than just invalidation information.
bus: add color and indentation to bus_message_dump()