Extract geolocation detection and storage logic from `QuestionBirthplace`
and `QuestionPhone` into a new `geo-region.ts` library. This provides a
single source of truth for user region data, including city, country,
and phone calling codes.
- Create `src/lib/geo-region.ts` to manage GeoIP fetching, caching,
and subscription-based updates.
- Refactor `QuestionBirthplace` to use the new `getUserGeoRegion` utility
instead of inline fetch logic.
- Refactor `QuestionPhone` to use the unified storage and retrieval
mechanism for phone calling codes.
- Add unit tests in `ui-config.test.tsx` to verify auto-detection
behavior when `enable_geoip` is enabled.