feat(avatar): sync avatar & profile across devices via Cesium+
A photo or profile changed on one device (phone, Cesium) would not appear on another (desktop): cached data was only re-checked after a 24h window, and an owned wallet's local avatar shortcut every display so its Cesium+ photo was never consulted at all.
- Adopt the Cesium+ avatar for owned wallets when it differs ("latest published wins"), via a new AvatarSyncService that repoints wallet.imagePath so reactive DatapodAvatars reload. A photo just set on this device is protected from being reverted before the pod propagates it.
- Re-validate cached avatars against Cesium+ once per session and on reconnection (compare-and-swap, no flicker).
- Re-fetch the Cesium+ profile (name, description, city, socials, tags) on reconnection via a new onlineReconnectCountProvider, without blanking the displayed profile when the app goes offline.
- Fix a crash where changeAvatar used the widget ref after the network upload, when the widget could already be unmounted: capture the providers up front instead.
- Fix changeAvatar deleting a default assets/ avatar (in debug the path resolves to the real source asset), by only deleting custom files.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com