Add support for deploying NixOS containers

You can now deploy a NixOS container on localhost using a spec like:

  foo = { deployment.targetEnv = "container"; };
Merge branch 'master' into containers
Add convenience command for starting a development shell
Improve container creation
Support starting and stopping containers
Remove hard-coded path
Merge branch 'master' into containers
Update nix-homepage example

In particular, open the firewall.
Don't run dhcpcd in containers
Add /etc/hosts entries for containers
Merge remote-tracking branch 'origin/master' into containers
Container backend: Properly check container status
Container backend: Drop unnecessary wait_for_ssh
Use types.either
Missing parenthesis
create_after: Pass in the machine definition

Needed for resources that need to be ordered after specific other
resources based on their definition (e.g. a container needs to be
ordered after its host).
Add utility function write_file
Layout
Start a container after its host
Container backend: Use ‘nixos-container create --system-path’

This way, the host does not need to have a copy of Nixpkgs.