monopam/lint: flag subtrees whose dune-project lacks (source ...)
Without a (source ...) stanza the generated .opam files lack a
dev-repo: field, which breaks downstream tooling that uses dev-repo
to map a package back to its subtree (e.g. root.opam external-dep
filtering, which previously left every internal package in the root
deps because Package.repo_name fell back to the empty string).
Distinguish "no dune-project" (legitimately not an OCaml subtree)
from "dune-project without source" (always a bug) and report the
latter alongside source/sources.toml mismatches.