Validate translations (`LanguageConfigOverride`s) of Canvas' config entities even though core doesn't
Quoting `docs/adr/0010-dynamic-config-schema-for-component-tree-translatability.md`:
> ### 3. Validation
>
> A related problem is the [12-year old core bug #2270399](https://www.drupal.org/project/drupal/issues/2270399): `LanguageConfigOverride`s are **never validated!** `LanguageConfigOverride::save()` only checks that values are scalars, arrays, or `NULL` — not objects. There is no schema validation, no constraint validation, and no check that translated values are structurally compatible with the base config. `ConfigSchemaChecker` (used in tests) explicitly skips non-default collections. `ConfigTranslationFormBase` has no `validateForm()` method. Even `Config::setOverriddenData()` at read time does a plain `NestedArray::mergeDeepArray()` with no validation. The only safeguard is `ConfigFactoryOverrideBase::filterOverride()`, which prunes override keys that no longer exist in the base config — but does not validate override values. For Canvas, this matters acutely: every component instance input depends on a specific component type and version, making malformed overrides far more likely to cause runtime breakage than for ordinary core config entities.
Core's https://www.drupal.org/project/drupal/issues/2270399 is not gonna happen any time soon. But Canvas' config is far more complicated, and is likely to run into validation errors.
In fact, while working on !1232, @larowlan ran into an error at _save_ time when providing an invalid translated value for an SDC prop that expects a `type: string, format: uri`: https://git.drupalcode.org/project/canvas/-/merge_requests/1232#note_1199209
(That one is in part caused by `tmgmt_content`: https://www.drupal.org/project/tmgmt/issues/2909109.)
But the same pattern can apply to translations for config-defined component trees: the override for a `type: string, format: uri` might be for example `lol this is not a URL`, which would then fail at render time. The #3517941+ infrastructure would prevent the entire site from crashing, but **one should not have to first save a config translation, to then only find out at render time that it's actually broken.**
So:
- let's add the "validate `LanguageConfigOverride`" infra that core is missing
- let's limit it to just Canvas' config entities
Out of scope: make this appear anywhere in the UI.
Note: this _blocks_ #3591690+, because without this, `ConfigWithComponentTreeConfigTranslationUiTest` nor `ConfigWithComponentTreeTmgmtUiTest` could surface validation errors!
issue