Separate 'markers' and 'members' in Google map on client-side

For clarity. Later, we will cache more member info in 'members'.
When preparing translation, factor out db connection and do it first

However, that it worked without this indicates that the db somehow is
connected before this code runs.
Prototype of radial search

Also prettify SQL in preparation for changes
More prettier query

An explicit join makes the next steps easier
replace_tags translation helper for HTML fragments
Add geocoding indices
Implement radial search

Factor out LoadNearbyListingsQuery.
Show distance in listing.
Don't include user's own listings in search results.
Include form field for distance search.
Delete prototype.
No radial search if you're not logged on
Make the distance input smaller and use number control if possible
Credit Movable Type scripts
Comment regarding SQL injection
String update: POT, NB
Forgotten rename to loadMembers
Hack the spinner with min and max

HTML_QuickForm doesn't support HTML5 form elements, so hardcode some
HTML.
Accidentally removed whitespace in front of the spinner
Obfuscation of member location was always -1

due to % not working on floating point.
When I wrote the algorithm I expected integers to overflow, but PHP
automatically converts them to floats. Hopefully fmod isn't too slow.
Compensate for longitude narrowing when obfuscating (with temporary debug logging)
Obfuscate latitude and longitude separately

Until now, coordinates were only shifted along a diagonal line. Now they can
be put anywhere within a 1 km² bounding box.