service: watch main pid even in final states

In some circumstances, for example when start-up times out we
immediately jump into the final state, at which point we still should
try to watch the main pid so that the SIGCHLD allows us to quickly
move into dead state.
log: don't reopen /dev/console each time we call log_open()

Instead, force reopen it only if we really really have to.
core: in a container log to /dev/console if "debug" is specified
units: run systemd-networkd.service only if CAP_NET_ADMIN capability is around

This has the effect that systemd-networkd won't run in containers
without network namespacing wher CAP_NET_ADMIN is (usually) not
available. It will still run in containers with network namespacing on
(where CAP_NET_ADMIN is usually avilable).

We might remove this condition check again if networkd provides services
to apps that also are useful in containers lacking network namespacing,
however, as long as it doesn't it should be handled like udevd and be
excluded in such containers.
log: when we log to /dev/console and got disconnected (maybe due to vhangup) reconnect
core: priorize notification fd processing over notification fd process via sd-event's logic
core,logind,networkd: check for udev device initialization via enumeration matches

Instead of checking each device after we got it, check wuth an
enumeration filter instead, to make it more efficient.
core,logind: libudev usage modernizations

Always use cleanup logic and don't eat up errors returned by libudev
loginctl: when showing device tree of seats with no devices show something useful
execute: set TERM even if we don't open the tty on our own

This way, when a tty path is configured TERM is set, which is nice to
set a useful term for gettys.
units: when spawning a getty configure TERM explicitly

This way we can make use of our logic to automatically determine an
appropriate TERM for a specific tty.
ptyfwd: make master terminal attributes raw, too