feat: add better error messages and actions for save file syncing
fix: button styling
fix: thread safety and crash resilience in downloads and mod manager
- GameDownloadService: use ConcurrentHashMap, AtomicLong, synchronized set, and StateFlow.update{} for thread-safe download callbacks; wrap all callbacks in try-catch to prevent silent thread death
- ModDownloadService: use StateFlow.update{} for atomic progress updates
- NexusModSource: replace throwing getJSONObject/getString/getInt with opt* variants and mapNotNull to handle unexpected API responses
- SmapiUpdateChecker: same opt* safety for SMAPI update API parsing
- ModBrowseViewModel: use StateFlow.update{} for state mutations from IO dispatcher to prevent lost updates under contention