libudev: always return valid negative error codes on API functions

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
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.

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
docs: remove unneeded the's in gudev docs

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

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
libudev: hwdb - use libudev not systemd logging

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Add more _printf_'s for format-nonliterals

Clang is a bit more strict wrt format-nonliterals:
http://clang.llvm.org/docs/LanguageExtensions.html#format-string-checking

Adding these extra printf attributes also makes gcc able to find more
problems. E.g. this patch uncovers a format issue in udev-builtin-path_id.c

Some parts looked intetional about breaking the format-nonliteral check.
I added some supression for warnings there.

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>