v2 builder: split sibling exe-deps from lib-deps
The v2 slice handles sibling `depends` and `exe-depends` from
plan-json differently:
* lib-deps land in `externalDepIds`, drive the slicing repo
(via `depTransitiveTarballsOf`), and get pinned in
`libConstraintPins`.
* exe-deps (build-tools) need their exe on PATH but their
source MUST stay out of the slicing repo's index — otherwise
cabal's solver in the slice plans the tool from source for
`build-tool-depends: foo:foo`-style deps and forks the
tool's unit-id (cross GHC info ≠ build-platform GHC info).
Split the plan-json walk in hspkg-builder into `homeDependIds`
(lib) and `homeBuildToolIds` (exe). The v2 builder's
`homeDepExeSlices` now feeds from the latter; `externalDepIds`
naturally drops exe-only entries.