Fully declarative modules

Building on top of #2540, this allows modules to specify the path of the nixpkgs lib to be used for the evaluation. In addition, if a nix with NixOS/nix#250 is used, they can also specify the import settings (currently just the nix path) to be used. Of course those config settings must be accessible with the bootstrapping lib + settings.

Note that this is EXPERIMENTAL and should not be merged before NixOS/nix#250 and extensive testing.