Annotate option-set options with the file in which they are declared.

This modification improves NixOS manual by listing in which file, each
submodule option is declared.  This solve the issue that files are not
reported when looking at options such as fileSystems.<name?>.neededForBoot
Merge options having the submodule type.

Now we should be able to have multiple declaration of the same option as
long as all declarations have the same type.  If the type has a sub module,
then it is merged with the submodules of other declarations, as done with
option sets.

In addition, the file of the option declaration is passed into the
submodule, such as the documentation can display it correctly.
Merge pull request #3856 from nbp/submodule-declarations

Annotate option-set options with the file in which they are declared.