find_matching_entity() now returns MatchResult with confidence tier
MatchResult is a dict subclass so all existing callers (dict access,
truthiness, is None checks) work unchanged. Adds .tier (MatchTier IntEnum)
and .is_high_confidence property for callers that need to distinguish
auto-merge-safe matches (tiers 1-4: exact, case-insensitive, email, slug)
from lower-confidence ones (tiers 5-8: first-word, token-subset, prefix,
fuzzy). Separated exact-case and lower-case lookup maps so tier 1 vs 2
are correctly distinguished. 23 new tests covering tier assignment,
backward compatibility, and the high/low confidence boundary.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>