feat: #3600769 Refactor site overrides to a full-snapshot model
Site overrides are now stored as complete revision snapshots (identified by site_id) instead of being composed at read time via field-by-field merging.
- SiteAwareEntityResolver::loadEffective() now simply returns the latest override revision for the site, or the canonical revision otherwise.
- Add buildSnapshot(), getOverriddenSiteIds() and resyncOverrides() to SiteAwareEntityResolverInterface.
- Add hook_sites_content_overrides_snapshot_alter() to allow sub-field-level merging when building a snapshot.
- Add sites_content_overrides.install with update hooks 10001/10002 to migrate existing overrides to the new model.
By: hydra
Closes #3600769