nixos/lighttpd: add services.lighttpd.enableModules option

This option makes the coupling between lighttpd and its sub-services
more "loose".

While the option is a list, its purpose is to provide a "set" of needed
modules to load for lighttpd to function correctly with its config. The
NixOS lighttpd module ensures lighttpd modules are loaded in the correct
order and ensures that modules are not loaded more than once (because
lighttpd dislikes that).

Also add an assertion that all modules listed in .enableModules are
valid.