Prefer non-partial entries regardless of FetchStrategy (#99705)
If an entry is not partial, it means nothing was omittted during
rendering. Regardless of the strategy used to fetch it — static vs
dynamic, shell vs prefetch vs navigation, etc — it's the most complete
possible representation of the data. No other fetch strategy could
return a more complete version.
This PR updates the precedence logic to take `isPartial` into account. I
discovered this while working on the next PR, which replaces `isPartial`
with a new "completeness" concept. I extracted it into this earlier PR
to show how it would be expressed in the current model, so the next one
is easier to review.