systemd: Apply backport fixes

In particular, added a few patches that improve systemd-nspawn
container behaviour.
Containers: Fix reboot and poweroff

Previously "machinectl reboot/poweroff" brutally killed the container,
as did "systemctl stop/restart". And reboot didn't actually work. Now
everything is fine.
Containers: Don't remount /
Containers: Clean up veth interfaces
systemd: Apply a patch that improves systemd-nspawn startup notification

Systemd-nspawn now sends startup notification *after* it has forked
the container init process and performed initialisation (such as
creating veth network interfaces).
Containers: Use systemd-nspawn startup notification

This prevents the container unit startup from hanging until timeout if
systemd-nspawn fails.
Enable parallel building for GCC.

Even if using profiledbootstrap.  This was unsafe before 4.8, and
then the documentation was not fixed on time.

The documentation got fixed here:
  https://github.com/gcc-mirror/gcc/commit/c763997f340ec1fab37ad538b57afdad4f4bf747

But the actual code was already fixed here:
  https://github.com/gcc-mirror/gcc/commit/5d2fca09d543d4b42b99fe20f412efb78cc50ec3

So this is safe both for GCC 4.8 and GCC 4.9.
Get rid of bootstrap-tools dependency from xz (and therefore stdenv)

0769fc5b77eb76c6a794187f173c48f912fc837c broke this by setting CONFIG_SHELL.
Merge #2823: better cygwin support, also add x86_64

Conflicts (easy):
	pkgs/development/interpreters/perl/5.16/default.nix
Merge branch 'master' into staging
gobject-introspection: refer to shlibs with absolute paths in typelibs

After this, LD_LIBRARY_PATH should not be required anymore.
The patch has been applied only for .la files, so there may
be some other cases missing.
Merge remote-tracking branch 'origin/master' into staging
Unify mutableUsers = { true, false }

With mutableUsers = true, we now ensure that all users and groups that
were created declaratively, are updated or removed
appropriately. Thus, adding a user to users.extraUsers and then
removing it now causes the acoount to be removed from
/etc/passwd. Thus user/group management is fully congruent except that
users and groups that were created imperatively (via useradd/groupadd)
are not touched. We distinguish between declarative and imperative
users/groups by tracking the former in
/var/lib/nixos/declarative-{groups,users}.

With mutableUsers = false, you are now no longer required to specify
UIDs/GIDs for all users. The handling of mutableUsers = true/false is
the same code path; the only difference is that the "false" mode
ignores the existing contents of /etc/{passwd,group}.

The attribute ‘createUser’ is gone. It doesn't really make sense to
specify users that shouldn't be created.
Add user attribute isNormalUser

This is shorthand for setting group, createHome, home, useDefaultShell
and isSystemUser.
systemd: Fix uninitialised memory issue in veth setup

This caused containers to randomly fail, in particular if the machine
name was 8 characters.
perl: Disable tests

It appears that these got re-enabled accidentally in
d1ed0f44cd154926e761cedee1cee72e55345807.

http://hydra.nixos.org/build/13369824
binutils: Enable sysroot support
Fix setting an empty password
gcc: Revive the no-sys-dirs patch

For now, we don't NATIVE_SYSTEM_HEADER_DIR because it breaks the
build. However, it points to Glibc in the Nix store (not /usr/include)
so it's kind of okay.
Revert "binutils: Enable sysroot support"

This reverts commit 773595540bd3a52476a7c84799e374d086d1c648. It
breaks stuff and we don't need it anymore.

http://hydra.nixos.org/build/13517591