Maps: Hide Google API from public use

- Rename hasApi to hasGoogleApi
- Move public use of hasGoogleApi to MapHelper
- Mark hasGoogleApi private
Change map display to use OpenLayers

This also uses Google Maps API v3, which eliminates the need for an API key.
Drop old javascript for map handling, add picture locations
Add popup for each marker
resize map popups to match content
Use OpenLS service for geocoding

This adds an authenticated proxy service to phTagr to work around CORS limitations
Avoid duplicate markers
Only add popup if there is something to show
Fetch markers on pan or zoom