adds a new specialArg to hosts: usernameList, which is a list of users
determined through user/user.nix in the host/hostname dir.
This touches syncthing, tuigreet, jibril, shells, and system
removes the user.name field, and converts user.timezone to
system.timezone. This is to move user content off of the host.
This old system is replaced with dynamic user creation based on the
usernameList variable
Because this removes the users.users.defaultUser shells now use the
(more appropriate) users.defaultUserShell
This adds some code to flake.nix to read the directory of hosts/ and
find all hosts based on their host.nix file, and set the hostname based
on the directory.
I don't know enough about hostnames to know what are valid characters,
but in the future this could allow a hostname such as "servers/madoka"
which may be an issue. For now the structure is simple enough of
"hosts/name" resulting in hostname "name"
Another commit is planned which will do the same thing for users