Allow a unit to declare "triggers" that force a restart

The triggers are just arbitrary strings that are included in the unit
under X-Restart-Triggers.  The idea is that if they change between
reconfigurations, switch-to-configuration will restart the unit
because its store path changed.  This is mostly useful for services
that implicitly depend on generated files in /etc.  Thus you can say

  restartTriggers = [ confFile ];

where ‘confFile’ is the derivation that generated the /etc file in
question.
dhcpcd: Don't depend on network-interfaces.target

Dhcpcd automatically detects new interfaces, so we can start it right
away.
Ensure that systemd-modules-load is restarted when boot.kernelModules changes
Let the tun services depend on /dev/net/tun
network-interfaces.nix: interfaces that are part of a bridge must be brought 'up' for the bridge to function
Move fs.target to filesystems.nix
switch-to-configuration: Handle multiple swap devices properly
Ensure that swap.target is pulled in by switch-to-configuration even if it failed earlier
Update automatic swapfile creation for systemd
Move escapeSystemdPath to lib/utils.nix

The new file ‘utils.nix’ is intended for NixOS-specific library
functions (i.e. stuff that shouldn't go into Nixpkgs' lib/).
Systemd unit names can contain Nix-illegal characters, so don't include them
Port automatic filesystem creation to systemd
Ignore systemd-modules-load errors

On NixOS, ‘boot.kernelModules’ has historically contained modules that
may not exist or load everywhere, so don't barf on those.
firewall: option to enable the rpfilter netfilter module

This is meant to replace /proc/sys/net/ipv4/conf/*/rp_filter, which
only works for ipv4. Furthermore, it's nicer to handle this kind of
filtering in the firewall.

There are some more subtle differences, please see:
https://home.regit.org/netfilter-en/secure-use-of-helpers/

I chose to enable this by default (when the firewall is enabled) as
it's a good idea in general. Only people with advanced routing needs
might not want this, but I guess they don't use the nixos firewall
anyway and use a custom solution. Furthermore, the option only becomes
available in kernel 3.3+, so conservative nixos users that just stick
to the default kernel will not need to act now just yet.
firewall: options to select connection-tracking helpers

My main reason for adding this is the ability to turn off helpers
altogether. If you are not using any of the special protocols, keeping
them turned off is safest, and in case you do want to use them, it's
best to configure them through the new CT target for your network
topology. Perhaps some sane defaults for nixos can be examined in the
future.

This change has no impact if you don't touch the added options, so no
need to adapt.
switch-to-configuration: Fix bad Perl
Forward compatibility with the systemd branch
Backward compatibility hack for ‘networking.nat.internalIPs’
modules/programs/bash: improve bash completion support

The new configuration.nix option 'environment.enableBashCompletion'
determines whether bash completion is automatically enabled system-wide
for all interactive shells or not. The default setting is 'off'.
modules/programs/bash: clean-up variables used in initialization of bash-completion