Refactor unfree aspect to use a module (#128)
This allows the aspect to be included in other aspects and compose all
unfree packages that are defined.
:warning: I just have tested the code for nixos and home-manager (as
module) definitions.
### Context:
I want to use `<den/unfree>` in multiple aspects and have their defined
packages to combined to one large `allowUnfreePredicate`.
That allows to define the unfree packages in the aspects near their
usage and not on the respective class definition (e.G. the host).
Here an example on my tryout repo where i am currently exploring how to
build my configs with den.
This defines an unfree predicate for vscode and the respective addons:
https://github.com/Shawn8901/dend_test/blob/main/modules/aspects/cfg/desktop/coding.nix
This defines my printer
https://github.com/Shawn8901/dend_test/blob/main/modules/aspects/cfg/printer.nix#L6
Both are later on then used in the host pointalpha together, whilst the
printer aspect is not used on my zenbook.
### Possible workarounds
* Gather unfree packages by hand and define them once on a class
* use `nixpkgs.config.allowUnfree = true`
### Other resources
Discussion on zulip
https://oeiuwq.zulipchat.com/#narrow/channel/548534-den/topic/feat-idea.20composable.20unfree.20batteries/with/564892231
Actual "root issue" why predicates are not combine/composable by default
https://github.com/NixOS/nixpkgs/issues/197325
### Possible Todos
~One issue i found is, that it does not play well with setting~
```nix
nixos.home-manager.useGlobalPkgs = true;
```
~as its setting a `nixpkgs.config.allowUnfreePredicate` even tho its not
allowed when using `useGlobalPkgs` in homeManager class.~
~This should just be done if `useGlobalPkgs` is set to false, tho i am
not yet fully confident how to set that condition correctly with den.~
Might have found a reasonable solution for that, see
https://github.com/vic/den/pull/128#discussion_r2656546800