wifi: Use WiFi-based geolocation for city level accuracy

Since GeoIP can be easily extremely inaccurate, let's use WiFi-geolocation
for city accuracy level. We scramble the location a bit so that apps
requesting city accuracy level don't end up getting user's street
location with 300 meters accuracy.