nix-daemon: Start "nix-daemon" rather than "nix-worker --daemon"
Run the garbage collector as a systemd service

Running it from systemd rather than cron has several advantages:
systemd ensures that only one instance runs at a time; the GC can be
manually started/stopped; and logging goes to the journal.

We still need cron to start the service at the right time, but
hopefully soon we can get rid of cron entirely (once systemd supports
starting a unit at a specific time).
For some units, use "systemctl restart" rather than "systemctl stop/start"

During a configuration switch, changed units are stopped in the old
configuration, then started in the new configuration (i.e. after
running the activation script and running "systemctl daemon-reload").
This ensures that services are stopped using the ExecStop/ExecStopPost
commands from the old configuration.

However, for some services it's undesirable to stop them; in
particular dhcpcd, which deconfigures its network interfaces when it
stops.  This is dangerous when doing remote upgrades - usually things
go right (especially because the switch script ignores SIGHUP), but
not always (see 9aa69885f04969e5d31dcb8265c327adc908954e).  Likewise,
sshd should be kept running for as long as possible to prevent a
lock-out if the switch fails.

So the new option ‘stopIfChanged = false’ causes "systemctl restart"
to be used instead of "systemctl stop" followed by "systemctl start".
This is only proper for services that don't have stop commands.  (And
it might not handle dependencies properly in some cases, but I'm not
sure.)
Ensure that ‘nix.gc.options’ is subject to shell expansion
Adding defaultGatewayWindowSize

This allows setting the max tcp window size for the route of
the default gateway (usually the internet access).

It works only for non-DHCP configurations by now.
Simplifying defaultGatewayWindowSize according to Eelco suggestions
Hack to prevent <interface>-cfg.service from breaking the default gateway

Restarting <interface>-cfg.service may cause the interface's IP
addresses to be flushed.  If the default gateway goes through that
interface, then the default gateway is deleted.  So we need to
restart network-setup.target.
display-manager: Start after local-fs.target

We don't want users trying to log in while /home is still being
fsck'ed...
smartd: Remove unnecessary PartOf dependency
switch-to-configuration: Stop some target units to ensure proper dependency ordering

This is currently only done for network-interfaces.target, but
it should propably be done for most targets.
Add section on network configuration topics
Add an overview of systemctl/loginctl/journalctl
Add a command ‘nixos-help’ that opens the NixOS manual in a browser
Merge remote-tracking branch 'upstream/systemd' into dev-systemd