reinfer: trust an image's edges whose methods come from its dependencies (#63655)
An edge whose expected methods neither dominate its signature nor
survive the interference scan goes to the full `methods` lookup.
However, often all the methods are only those that the worker already
saw when being precompiled, so the match set is still exactly that set.
So before the interference scan, check whether every method under the
signature's typenames was already present when the `CodeInstance` was
precompiled. If so, the worker's verdict stands with no upper bound.
Without an ambiguity the edge is valid from the newest expected method,
as the lookup would date it: the methods matched now win in every older
world in which they are all present. An ambiguous edge, or one that
matched nothing, is conservatively valid only from the youngest
contributor, since a lookup can drop an ambiguous pair of which one was
the sole match in an older world (we can only refine this by computing
the full `methods`). An invoke edge is trusted while its target is still
the latest method of its signature, and is dated from that method. A
session definition or deletion under those typenames, a method of an
image outside the dependencies, a kind or `Type{Union{}}` method, code
of no image and the invalidation debugger all refuse the trust, and the
edge falls through to the interference scan, which then passes over the
dependencies' own methods, and then to the lookup.
Assisted-by: Claude Code (Fable 5.1)
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
(cherry picked from commit af8da45cdb540e8d90cbc624f6eed209de8e715b)