Drop DomainSourceRouteMatcher and its route provider on 4.x, now that core 11.4 gives the path processor the route
Removes DomainSourceRouteMatcher, DomainSourceRouteProvider, the domain_source.route_provider service and the block in DomainSourcePathProcessor::processOutbound() that called the matcher. 378 lines of copied core routing code go.
Route resolution then falls to core's route provider, which held no domain in its cache key outside a request, since DomainSubscriber registered one on kernel.request only. So the provider resolves the domain itself where the cache ID is built, which covers a process serving several domains in turn as well as a request, and the subscriber's registration is removed rather than kept as a second copy of the same rule.
Only core's own route provider is swapped. A database driver may supply its own, and kernel tests replace the service with an on-demand provider taking no constructor arguments; swapping those unconditionally fails with an ArgumentCountError, which is why the class is checked first.
The end-to-end test that proved routes resolve per domain is kept: moved to the domain module and pointed at core's router rather than the matcher.
Run on core 12 locally: 98 kernel and unit tests, then 52 functional tests with 2115 assertions, no failures across domain and domain_source.
One deliberate behaviour change: a base: URI with path_processing, which by definition names no route, is no longer domain-source rewritten. internal: URIs are unaffected because Url::fromInternalUri() resolves them to routed URLs.