Refactor flake to work without nixos-flake and use native NixOS module system. This is because of recent changes to nixos-flake, like renaming it to nixos-unified and changing the API without a changelog or guide how to update.