Refactor the radicle-desktop build function in the flake by splitting it into
an external file. Use file-based scoping to prevent access to global symbols
within the build function.
Add `watch_file flake.lock rust-toolchain` in .envrc, because direnv re-eval
devShell only at the change of flake.nix by default. After this patch, direnv
also re-eval when flake.lock/rust-toolchain changed.