Changed to non-destructive array copy.

options.keys is the same as ids and therefore I shan't pop its elements.
Forwarded Google Maps geometry types to GeoJSON primitives.
Provided offline Google Maps API look-and-feel.

I inserted a minimal API that is pretty much adapted to its use in the map
page. For instance, only one handler is attached to 'bounds_change'
exclusively, so I don't need to bother with multiple handlers on different
event types; The new handler simply replaces the old one. Also for that reason,
clearListener() does nothing.
When in offline mode, the map page still fetches geometry from _view/geojson.
Since the viewport is more or less the entire earth, however, detail level is
as low as possible. I find myself way too lazy to rewrite update_geometry() for
no effect whatsoever.
Provided a clumsy explanation that 'the map is offline'.

This does not read well at all.
Disabled irrelevant settings when in offline mode.
Expressed offline-mode API in a nicer way.

This allows me to drop the guard ampersands and it explains itself. I don't
know why I bothered with the comments but there you go.
Simplified and formatted offline google.maps.event.

Members with that ugly long argument list are written in three lines whereas
simple members are written in one line. Also it makes more sense to have an
initialized handler and that clearListeners actually does something.
Sometimes the minimalst minimal isn't the best option.
Formatted some initialization as on top of the script.
Replaced empty lines with witty commentary.

Because I hate empty lines!!