Keep the number of exposed inputs from the top-level flake small by
splitting the development environment into its own flake.
The .envrc uses `--override-input srvos path:$PATH` so that the srvos
path always get re-calculated on reload, but not recorded. Since the
hash of srvos is stored inside of srvos, it would infinitely update
otherwise.