Replace Accept-Language read negotiation with URL-keyed langCode + includeFallback
Reads now carry all language state in the URL: ?langCode= stays strict (cacheable 404 with entity cacheability and meta.availableTranslations), and ?langCode=&includeFallback=1 resolves the best available translation through the site's language fallback chain (core's fallback candidates, so hook_language_fallback_candidates_alter() implementers such as language_hierarchy compose automatically; the entity's default translation is the terminal candidate, so fallback reads always 200).
Language request headers are inert on reads, Content-Language exactly like Accept-Language: the URL-keyed internal page cache stores responses (4xx included) by URL alone, so any header-dependent outcome would be unreliable on a warm cache or poison a URL's cached response.
Deleted: LanguageNegotiator, the 406 path and its meta injection (moved to the strict 404, at response priority 100 so cached bodies carry it), the site-wide Vary handling, Content-Location canonicalization, and the page-cache kill switch: translatable reads are now cacheable at every layer, with bounded variant cardinality, and invalidate via cache tags (entity tags on misses, config:configurable_language_list on fallback-mode responses).
DIVERGENCE(core): #3199697 negotiates reads from Accept-Language and has no includeFallback; propose the URL-keyed contract upstream (the caching argument: #2430335) or restore the header before the core handoff.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Closes #3613823