systemd-python: attach fields to JournalHandler, add SYSLOG_IDENTIFIER

Arbitrary fields can be attached at the level of the handler,
and they'll be sent with all messages from this handler.

This facility is used to attach SYSLOG_IDENTIFIER to all messages,
since otherwise journald attaches SYSLOG_IDENTIFIER=python or
something similar, which is completely useless.
Remove erroneous attribute((malloc)) annotations

According to gcc documentation, returned pointer "cannot alias any
other pointer valid when the function returns" and "the memory has
undefined content". This second part is (hopefully) untrue for all
those functions.
Make up for attribute malloc with alloc_size

It is imperative that open source code be well attributed.
Sprinkle attribute((alloc_size)) here and there, telling gcc
how much memory we are actually allocating.
Add some extra __attribute__ ((format)) s
Add printf attributes in exported headers

gcc (and other compilers) sometimes generate spurious warnings, and
thus users of public headers must be able to disable warnings.

Printf format attributes can be disabled by setting
    #define _sd_printf_attr_
before including the header file.

Also, add similar logic for sentinel attribute:
    #define _sd_sentinel_attr_
before including the header file disables the attribute.
readahead: fix format string issue

(struct stat).st is off_t, which usually is a long, or a long long.
There's no good format string modifier for it, so use a cast.
bus: avoid gcc warning about casting a pointer to int of different size
Use attribute(unused) in PROTECT_ERRNO

clang emits warnings about unused attribute _saved_errno_, which drown
out other—potentially useful—warnings. gcc documentation is not exactly
verbose about the effects of __attribute__((unused)) on variables, but
let's assume that it works if the unit test passes.
core: remove duplicate MESSAGE= from log message

This was needed with log_struct_unit() but log_notice_unit() adds it
anyway.