rules: expose loop block devices to systemd

Since the kernel no longer exposes a large number of "dead" loop devices
it is OK to expose them now in systemd, so let's do that. This has the
benefit that mount dependencies on loop devices start to work.
rules: don't limit some of the rules to the "add" action

Devices should show up in systemd regardless whether the user invoked
"udevadm trigger" or not. Before this change some devices might have
suddenly disappeared due issuing that command.
macro: clean up usage of gcc attributes

Always use our own macros, and name all our own macros the same style.
event: fix sd_event_source_set_io_events()
event: properly disarm timers when we don't need them anymore
event: handle arbitrary signals received during epoll gracefully
bus: extend bus protocol definitions a bit
bus: fix generate introspection XML
bus: make sure sd_bus_get_timeout() returns a 0 timeout of there are already read but not dispatched messages
bus: return 1 on all calls that send messages

This way they are nicer to use from method dispatch callbacks as last
call, since method dispatch callbacks expect > 0 return if the message
got handled.
timedated: use libsystemd-bus instead of libdbus for bus communication

Among other things this also adds a few things necessary for the change:

- Considerably more powerful error returning APIs in libsystemd-bus

- Adapter for connecting an sd_bus to an sd_event

- As I reworked the PolicyKit logic to the new library I also made it
  asynchronous, so that PolicyKit requests of one user cannot block out
  another user anymore.

- We always use the macro names for common bus error. That way it is
  harder to mistype them since the compiler will notice