Make nix-modules available when defining user environments.

A new user specific configuration file is introduced.
It is located in "~/.nixuser/configuration.nix".
The idea is to have a declarative approach for defining the user environment
at some point. The configuration file acts as the input of a module evaluation
system, similar to "/etc/nixos/configuration.nix" for the NixOS configuration.

A new file "nixos/modules/nixuser-module-list.nix" is added.
The file lists modules that are made available both for system configuration
and for user configuration.
The file is imported by "nixos/modules/module-list.nix" and is used in
"pkgs/top-level/all-packages.nix".
Well, the files that I import don't contain modules. The files contain just functions, and then the output of the function is used as input for an automated process which generates options.
The actual option sets has to follow some specific rules, and I don't want everyone who extends the vimProfile configurations to have to know about it. I prefer to hide the actual, quite complex "inheriting" process.

About makeProfile, that function is used to define "options.programs.vim" in line 359, but also hidden in line 115. So I can't just convert it into a function.
But thanks for pointing it out to me, I will keep it in mind and try to improve my coding style!