macro: add new assert_return() macro for early parameter checking in functions

For the library functions we expose we currently repeatedly use checks
like the following:

if (!value_is_ok(parameter1))
        return -EINVAL;
if (!value_is_ok(parameter2))
        return -EINVAL;

And so on. Let's turn this into a macro:

assert_return(value_is_ok(parameter1), -EINVAL);
assert_return(value_is_ok(paramater2), -EINVAL);

This makes our code a bit shorter and simpler, and also allows us to add
a _unlikely_() around the check.
event: implement quit handlers

Quit handlers are executed when an event loop is terminated via
sd_event_request_quit(). They are in a way atexit() handlers that are
executed in a well-defined environment, time and thread: from the event
loop thread when the event loop finishes.
event: rename the "mute" field of event sources to "enabled"

In addition, the states "UNMUTED" and "MUTED" become "ON" and "OFF".

This has the benefit that a possible value of this field is not
identical to its name, thus minimizing confusion.
event: add sd_event_source_get_child_pid() call to query the PID of a child event source
event: move all library calls over to new assert_return() macro
event: add apis to query the timestamp of the event currently processed
bus: make GetManagedObjects() work
bus: allow specifying NULL as type string when we want to construct messages with no payload
bus: decorate API calls with gcc attributes where appropriate
bus: make PropertiesChanged emission work
bus: when NULL is specified as property callback, automatically handle serialization on Get()
smack: minimize ifdef use, and move all labeling to smack-util.c
udev: usb_id - remove obsoleted bInterfaceSubClass == 5 match

bInterfaceSubClass == 5 is not a "floppy"; just identify the obsolete
QIC-157 interface as "generic".
Add support for saving/restoring keyboard backlights

Piggy-backing on the display backlight code, this saves and restores
keyboard backlights on supported devices.

The detection code matches that of UPower:
http://cgit.freedesktop.org/upower/tree/src/up-kbd-backlight.c#n173

https://bugs.freedesktop.org/show_bug.cgi?id=70367

[tomegun: also work for devices named "{smc,samsung,asus}::kbd_backlight"]
bus: automatically do a NOP reply when a NULL callback is specified for a method in a vtable

Also, allow specifiying NULL as signature in vtables equivalent to ""
for empty parameter lists.
bus: if a a Set() vtable callback of a writable is left NULL, try to do the right thing automatically
bus: split up overly long sd-bus.c into three files
bus: don't rely on gccisms/c11 in public header files.

One day sd-bus.h should become a public header file. We generally try to
be conservative in language features we use in public headers (much
unlike in private code), hence don't make use of anonymous unions in
structs for the vtable definitions.
bus: beef up parameter checking of convenience calls
bus: beef up parameter checking in vtable handling