v2 shell: always run cabal-project-local-sync, even with no defaults
`haskell-nix-cabal-project-local-sync` was previously included in the shell's `nativeBuildInputs` and shellHook only when the project's effective `cabalProjectLocal` had non-empty content. For targets where none of the platform mkIfs fire and the user hasn't set anything (e.g. ghcjs), the script was missing from PATH — so any test that called it directly errored with `command not found`, and the test's `import: cabal.project.<targetPrefix>local` then failed because the file didn't exist either. Always include the script and always run the shellHook. When the project's `cabalProjectLocal` is empty, the script writes an empty `cabal.project.<targetPrefix>local`, which cabal imports harmlessly (no-op). Removes the empty-content gate, so the shape is the same across all targets. Verified the ghcjs cabal-sublib-shell test now passes (`aarch64-darwin.unstable.ghc9141.ghcjs.tests.cabal-sublib-shell.run`) and the existing native/musl64/wasi32 paths are unchanged.