Move lighttpd.nix to lighttpd/default.nix

So that we later can add sub-services for lighttpd without polluting the
web-servers/ directory.
 lighttpd: generate a default config file

Instead of forcing users to configure lighttpd manually, make it an
option. The current services.lighttpd.configText option can still be
used for manual configuration, but if it is left blank (default) we'll
use the new generated config file.

The generated config file ensures that the server drops root priveleges
and runs as the "lighttpd" user. It pulls in some new config params that
can be set in configuration.nix (here with default values):

  services.lighttpd.document-root = "/srv/www"
  services.lighttpd.port = 80
  services.lighttpd.extraConfig = ""  # appended to the generated file

And it enables access and error logging to the systemd journal.

Patch contributed by Bjørn Forsman.
lighttpd: add services.lighttpd.mod_userdir option

If true, requests in the form /~user/page.html are rewritten to take
the file public_html/page.html from the home directory of the user.

Default is off.

Patch contributed by Bjørn Forsman.
lighttpd: add services.lighttpd.mod_status option

If true, show server status overview at /server-status, statistics at
/server-statistics and list of loaded modules at /server-config.

Patch contributed by Bjørn Forsman.
lighttpd: add gitweb as a sub-service

Now you can access gitweb at http://yourserver/gitweb by simply adding
this to configuration.nix (assuming services.lighttpd.enable = true);

  services.lighttpd.gitweb.enable = true;

The path to all bare repositories served by gitweb can be set with this
option (default value below):

  services.lighttpd.gitweb.projectroot = "/srv/git";

Based on patch contributed by Bjørn Forsman.