logind: add infrastructure to keep track of machines, and move to slices

- This changes all logind cgroup objects to use slice objects rather
  than fixed croup locations.

- logind can now collect minimal information about running
  VMs/containers. As fixed cgroup locations can no longer be used we
  need an entity that keeps track of machine cgroups in whatever slice
  they might be located. Since logind already keeps track of users,
  sessions and seats this is a trivial addition.

- nspawn will now register with logind and pass various bits of metadata
  along. A new option "--slice=" has been added to place the container
  in a specific slice.

- loginctl gained commands to list, introspect and terminate machines.

- user.slice and machine.slice will now be pulled in by logind.service,
  since only logind.service requires this slice.
logind: make ListMachines bus call public
sd-login: update machine enumeration/notifications APIs for new /run/systemd/machines/
nspawn: '-C' option has been removed

Fixup for 9444b1f "logind: add infrastructure to keep track of
machines, and move to slices."
build-sys: make intltool and distcheck happy
logind: uninitialized variable
kernel-install: filter out "initrd=" from /proc/cmdline
journalctl: show lines in full with --all

In 31f7bf1 "logs-show: print multiline messages", I forgot
to take into account the fact that --all implies --full for
journalctl.
manager: add DefaultEnvironment option

This complements existing functionality of setting variables
through 'systemctl set-environment', the kernel command line,
and through normal environment variables for systemd in session
mode.
man: document that shutdown() is only sometimes OK on sockets passed in via socket activation
man: fix example for DefaultEnvironment=

The example mentioned Environment= rather than DefaultEnvironment=.

Also made some other clean-ups.
update TODO
core: only attempt to connect to a session bus if one likely exists.
login: add an api to determine the slice a PID is located in to libsystemd-login
Add hasprefix macro to check prefixes of fixed length
journal: allow callers to specify OBJECT_PID=

When journald encounters a message with OBJECT_PID= set
coming from a priviledged process (UID==0), additional fields
will be added to the message:

OBJECT_UID=,
OBJECT_GID=,
OBJECT_COMM=,
OBJECT_EXE=,
OBJECT_CMDLINE=,
OBJECT_AUDIT_SESSION=,
OBJECT_AUDIT_LOGINUID=,
OBJECT_SYSTEMD_CGROUP=,
OBJECT_SYSTEMD_SESSION=,
OBJECT_SYSTEMD_OWNER_UID=,
OBJECT_SYSTEMD_UNIT= or OBJECT_SYSTEMD_USER_UNIT=.

This is for other logging daemons, like setroubleshoot, to be able to
augment their logs with data about the process.

https://bugzilla.redhat.com/show_bug.cgi?id=951627
Make sure we only show authentic coredump messages

Before we only checked the MESSAGE_ID and COREDUMP_UNIT.
Those are both user-controlled fields.

For COREDUMP_USER_UNIT, relax the rules a bit, and also
allow messages from _UID=0.
journalctl,systemctl: show messages tagged with OBJECT_SYSTEMD_[USER_]_UNIT

Replace mallocs with alloca while at it.
keymap: Apply to all Latitude and Precision models

https://launchpad.net/bugs/1193147
journald: bump the journal per-unit ratelimit defaults

Too many people kept hitting them, so let's increase the limits a bit.

https://bugzilla.redhat.com/show_bug.cgi?id=965803