feat: use server-computed locationDisplay and fix county leak
Reads the new locationDisplay field from gallery and story views so the
UI renders one pre-formatted string instead of piecing together name and
address fields client-side. Falls back to location.name when an older
server hasn't shipped the field yet.
Also fixes two legacy issues that left county embedded in stored records:
- LocationServices.reverseGeocode no longer appends "county" to the
fallback name when Nominatim omits a POI name, matching the web's
geocoder output. New records won't have county in location.name.
- BlueskyPost.buildPostText handles legacy community.lexicon.location.
hthree records (no structured address) by using location.name as-is
instead of stripping after the first comma.
Adds NominatimResultTests covering the county exclusion and extends
BlueskyPostTests with legacy-record, county-embedded, and state-abbrev
cases.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>