Deleting a content entity translation leaves its auto-save snapshot behind; publishing resurrects the deleted translation
### Overview
Deleting a translation of a Canvas page does not delete that translation's auto-save snapshot. The next publish of the entity's pending changes then silently re-creates the deleted translation from the stale snapshot — the editorial decision to delete the translation is undone without any warning or conflict.
Deleting the *whole* entity correctly discards its entire pending-changes group (all per-translation snapshots). Deleting a *single translation* fires `hook_entity_translation_delete()`, which canvas does not implement, so the deleted translation's snapshot survives in the auto-save store. It is not flagged as a conflict either, so publishing proceeds normally.
### Steps to reproduce
Verified with a kernel test against the auto-save HTTP API:
1. Install canvas, language and content_translation; add Spanish; enable translation for Canvas pages (the default symmetrical settings).
2. Create a Canvas page in English and publish it.
3. Add a Spanish translation and save it.
4. In the Canvas editor, edit the English and the Spanish translations, so both have auto-save snapshots. Do not publish. ← This can't happen manually, but as a result of component instance updates: add a new text prop to a component you are using in the page.
5. Delete the Spanish translation (Translate tab → Delete translation).
6. Publish the page's pending changes.
Result: the publish request returns 200, and the entity has a Spanish translation again, rebuilt from the stale snapshot. No conflict is reported at any point.
The resurrection happens in `ApiAutoSaveController::applyAutoSaveTranslationSnapshots()`: every stored snapshot of the entity's translation group is applied onto the freshly loaded entity, and a snapshot whose langcode no longer exists on the entity triggers the `addTranslation()` fallback.
### Proposed resolution
Implement `hook_entity_translation_delete()` to discard the deleted translation's auto-save snapshot, mirroring the existing whole-entity cleanup on `hook_entity_delete()`.
### User interface changes
None.
### Release notes snippet
Deleting a translation of a Canvas page now also discards that translation's unpublished draft, so publishing no longer restores the deleted translation.
issue