Issue #3615410: Remove hardcoded bundle names from resources and helpers
Adds the myrest.bundle_mapping configuration object and the myrest.bundle_map service behind MyrestBundleMapInterface. resolve() translates the bundle the module asks for into the one this site uses; canonical() reads the mapping backwards for the five places that dispatch on a bundle read off an entity, so responses keep the names the API documents.
45 queries, comparisons and entity-creation keys now resolve their bundle, and 10 resources declare the single bundle they serve as myrest_bundle in their plugin definition. myrest_rest_resource_alter() leaves such a resource unregistered when neither the declared bundle nor a mapping for it exists.
Fixes five pre-existing fatals found while testing: the argument order of MyrestResourceBase::create(), the missing : static on MyrestResourceContactForm::create(), a redundant create() override in CtaOnlineConsultationAddResource, an untyped $limit redeclaration in NodesPackageGetResource and narrowed parameters in NodeArticleGetResource::getBaseRoute().
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Closes #3615410