Inspired by https://jade.fyi/blog/flakes-arent-real/, this is better for
composability:
> it also doesn't work outside of the flake that's actually invoking nixpkgs.lib.nixosSystem. The latter is the much more sinister part, and the reason I would strongly recommend inline modules with closures instead of specialArgs: they break flake composition.
For now, the `system` remains a specialArg, until I decide what to do
with that.
First step in modularising the NixOS config, with a focus on separation of host-specific and common configs.
Common modules still need to be split up and refined, several TODOs and FIXUPs remain in code. But the config builds fine on thinknix.
Roughly based on/ inspired by https://johns.codes/blog/organizing-system-configs-with-nixos#using-nixos