monopam: lint attributes private stanzas to single-package subtrees
stanza_owner returns None for stanzas that have no public_name and no
explicit (package ...) — typically build-time generators in a [gen/]
subdir. Before this commit, dune_packages_by_owner skipped those
stanzas outright, so their (libraries ...) entries never showed up in
any package's required set and the lint silently passed.
Fall back: when a subtree contains exactly one opam package, attribute
private stanzas' libs to that package. [dune build -p <only-pkg>
@install] is what actually compiles these stanzas at install time, so
their library closure really is part of the package's install-time
closure. Multi-package subtrees still skip private stanzas (no obvious
single owner to attribute to).
The failing test from the previous commit now passes.