Fully modular

This branch is an attempt at solving #78. It (shouldn't) change any functionality at all yet, so it can go into `master`, though we can merge it into `next` as well. If/when we decide this is OK to merge I'll do the actual merge to avoid conflicts.

Note that currently there's no way to actually pass network-level modules to nixops yet. Adding that functionality will be trivial now that this is in place, but there are some interface/backwards-compatibility decisions to be made there that are orthogonal to using network-level modules internally.

This depends on NixOS/nixpkgs#598 or something equivalent.