This commit introduces a new feature that allows members to set their location using two methods: a "Find my location" button that uses the browser's Geolocation API, and a Leaflet.js map for manual marker placement.
Key changes:
- Adds a new `set_location` page for members to update their location.
- Integrates a Leaflet.js map for visual location selection.
- Implements a "Find my location" button using the browser's Geolocation API.
- Uses reverse geocoding to determine a user's suburb/city/town from coordinates.
- Enhances privacy by rounding latitude and longitude to two decimal places, reducing location accuracy.
- Provides a fallback mechanism for when reverse geocoding fails, storing a generic location string.
- Adds comprehensive feature tests for the new functionality.