fix: module-level dedup for host-aspects overlap support (#468)
Named aspects now get a key attribute (class@identity) on their
collected modules. The NixOS module system deduplicates by key across
independent resolve calls, so a user can include an aspect directly AND
receive it via host-aspects without duplicate option declarations.
Anonymous/synthetic aspects are excluded from keying so multiple
anonymous includes coexist correctly.
Also fixes the pre-existing duplication where aspects included by both
host and user produced duplicate nixos modules via the default context
transition.
authored by