Adds the ability for the auto-upgrade service to update a Nix flake
instead of Nix channels.
This is controlled by a new `useFlake` boolean option. When enabled, the
service will run `nix flake update` in the directory specified by the
`flakeDir` option.
`flakeDir` defaults to the standard Home Manager configuration directory
(`~/.config/home-manager`), making this feature work out-of-the-box for
most users. The path is passed to the upgrade script via an environment
variable in the systemd service unit.