Switched to Google Maps API v3.16.
Provided proper Polyline/Polygon/Marker options.

v3.16 gets confused if options.path is set to a two or three dimensional array
or if options.paths is given to the Polyline constructor. I was lazy and just
let options.paths=options.path=options.position and I got away with it (until
now).
Luckily it suffices to choose options' members by the number of dimensions of
the initial coordinates array as such:
d=1 is going to be a marker, so options.position it is,
d=2 is going to be a Polyline that implies options.path,
d=3 could be either Polygon or MultiLineString; I set options.paths in any
    case, and dealt with renaming it to options.path in MultiLineString().
d=4 is going to be a MultiPolygon, so I could use whatever I want and decided
    on options.paths for simplicity.
Removed abstract comparison where not really needed.

As far as I can see, this removes a lot of unneccessary type conversion.
Removed in-line array instantiation in lib/utils.

Normally I couldn't care less because these functions where used only in views,
where performance wasn't an issue. However, since I convert to EPSG:3397 in
_list/export, the array would be built at least for every feature.
Removed 'defensive semicolons' in lib/utils.

They are not really 'defensive' as they should protect my named functions from
being made anonymous by erica. Erica excepts CommonJS libraries from
replacement anyway.