monopam: filter local-private libs from missing-dep detection
A '(library (name X))' stanza without '(public_name)' compiles to a
workspace-private archive — sibling stanzas can '(libraries X)' it,
but no opam package installs it. The lint was treating such refs as
external opam deps, so claude.opam ended up declaring 'json_utils'
(used only by ocaml-claude/examples/) as a runtime dep, leaking out
to https://tangled.org/gazagnaire.org/opam-overlay.
Walk every dune file in the subtree via Dune.File.private_library_names
(nox-dune) and collect those names. dune_needed_packages and
dune_packages_by_owner now resolve such refs to None and skip them
when computing the missing-dep set. The Unused detector still flags
them: if an opam file already declares one, the regen drops it.