udev/net_id: Introduce predictable network names for Linux on System z

Use the bus-ID to create predicatable devices names for network interfaces
on Linux on System z instances.  The bus-ID identifies a device in the s390
channel subsystem.

Network interfaces of device type Ethernet are named as:
    enccw0.0.1234    (13 characters)
up to
    enccwff.7.ffff   (14 characters)

CTC network devices of device type SLIP, use a different prefix as follows:
    slccw0.0.1234    (13 characters)

See also Red Hat Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=870859
[tomegun: typical problem of netdevs switching names between reboots.]
sd-dns: initial commit

Origin: <http://0pointer.de/lennart/projects/libasyncns/>

[tomegun: renamed some more files asyncns -> sd-dns and moved to libsystemd-bus as
requested by Lennart]
sd-dns: cleanup public header

Don't include internal headers
Update license text
Use _SD_BEGIN/END_DECLARATIONS
sd-dns: update/add license texts
sd-dns: simplify headers

As noted by Lennart: HAVE_CONFIG_H is done implicitly and sys/prctl.h is
mandatory.
journal: fix access to munmapped memory in sd_journal_enumerate_unique

sd_j_e_u needs to keep a reference to an object while comparing it
with possibly duplicate objects in other files. Because the size of
mmap cache is limited, with enough files and object to compare to,
at some point the object being compared would be munmapped, resulting
in a segmentation fault.

Fix this issue by turning keep_always into a reference count that can
be increased and decreased. Other callers which set keep_always=true
are unmodified: their references are never released but are ignored
when the whole file is closed, which happens at some point. keep_always
is increased in sd_j_e_u and later on released.
journalctl: allow globbing in --unit and --user-unit

This is a continuation of e3e0314b systemctl: allow globbing in commands
which take multiple unit names.

Multiple patterns can be specified, as separate arguments, or as one argument
with patterns seperated by commas.

If patterns are given, at least one unit must be matched (by any of the patterns).
This is different behaviour than systemctl, but here it is necessary because
otherwise anything would be matched, which is unlikely to be the intended
behaviour.

https://bugs.freedesktop.org/show_bug.cgi?id=59336
network: use GNU-ism to simplify macros

Thanks David!
core: fix unused variable