keep $NIX_REMOTE_SYSTEMS if present

allows to define some other faster machine (and perhaps with lower
latency) to perform the build
Make it possible to define modular deployments.

With the --modular-expressions flag, nixops will now treat the
expressions as a module, with machines and resources being evaluated as
submodules. This allows defining deployment-level options/configuration,
as well as reducing duplication between eval-machine-info.nix and
eval-config.nix.

Machines are now defined as attributes in resources.machines, and the
network.* configuration are now in the top-level config namespace (so
there's an enableRollback option, a description option, etc.). For
convenience, the top-level configuration can be accessed as the
'deployment' argument to each module.

Depends on NixOS/nixpkgs#2540 (though deployments without the
--modular-expressions flag will work without it).

Fixes #78 (see issue for more details on motivation).
Make it possible to see deployment-level options
Don't evaluate the whole pkgs set when resources are defined