Remove dead code
Get rid of the only use of mkDefaultValue
Get rid of the only use of mkNotdef
openvpn.nix: Improve types
rename.nix: Don't use the extraConfigs feature
Big cleanup of the NixOS module system

The major changes are:

* The evaluation is now driven by the declared options.  In
  particular, this fixes the long-standing problem with lack of
  laziness of disabled option definitions.  Thus, a configuration like

    config = mkIf false {
      environment.systemPackages = throw "bla";
    };

  will now evaluate without throwing an error.  This also improves
  performance since we're not evaluating unused option definitions.

* The implementation of properties is greatly simplified.

* There is a new type constructor "submodule" that replaces
  "optionSet".  Unlike "optionSet", "submodule" gets its option
  declarations as an argument, making it more like "listOf" and other
  type constructors.  A typical use is:

    foo = mkOption {
      type = type.attrsOf (type.submodule (
        { config, ... }:
        { bar = mkOption { ... };
          xyzzy = mkOption { ... };
        }));
    };

  Existing uses of "optionSet" are automatically mapped to
  "submodule".

* Modules are now checked for unsupported attributes: you get an error
  if a module contains an attribute other than "config", "options" or
  "imports".

* The new implementation is faster and uses much less memory.
Remove uses of mkFixStrictness

mkFixStrictness is no longer needed, woohoo!
Use isType instead of typeOf
Keep position information for option declarations and definitions

Also, when an option definition fails to type-check, print the file
name of the module in which the offending definition occurs, e.g.

  error: user-thrown exception: The option value `boot.loader.grub.version' in `/etc/nixos/configuration.nix' is not a integer.
Reduce the number of allocations a bit
Inline some functions on the critical path
Fix comment
Remove dead code
Manual: Fix bad \" characters
Fix manual generation
Add missing types
Fix bogus mkOption types

Among others, systemd unit options were not being type-checked because
of this.  mkOption should really check its arguments better...
Show error locations in submodules
Check for undeclared options
Remove uses of the "merge" option attribute

It's redundant because you can (and should) specify an option type, or
an apply function.