Enable updating the treeview to allow setting a blank waypoint symbol.
[QA] Function should have only local scope.
[QA] Add missing include as this header uses an externally defined type DownloadMapOptions.
Add Wikimedia Toolserver GeoHack as a webtool.

Stick it in the osm file for now.
Fix use of scaled tile image when tile image not present.

Due to the two stage initialization of the VIK_MAP_SOURCE the tilesize was actually set to zero.
This leads to the mapslayer redraw *not* trying differing tile zooms to get a pixbuf for the current zoom level.

First vik_map_source_init is performed (such as vik_slippy_map_source_init(),
 which sets a specific tilesize value in the first g_object_new() call.

However since the tilesize parameter is 'G_PARAM_CONSTRUCT | G_PARAM_READWRITE',
 on the second g_object_new() such as in osm_init(), since the tilesize is not specified
 it seems it is then 'constructed' with the default g_param value - which in this case is 0.

Thus to prevent the resetting of the tilesize, set it to 'G_PARAM_READWRITE'
and hence the extra (re)construction is avoided.

This has been broken since early 2010 in commit SHA1:0f08bd0dd39944f099a00af0ae8fe319d8bd9fa0
when the tilesizes at the osm.c level where removed, even though the underlying flaw is from earlier:
at least SHA1:31f3c5e7091825bd5c73f0d538741906cb4e4501
Extend map scales down to support 1/32 zoom level.

Refactor all usage of 'GZ()' and *_mpp_to_scale() to use common definitions.
Including the addition of map_utils_mpp_to_zoom_level() and use it with WebToolCenter.
Prevent requests for downloading tiles at Zoom Level 19 and above for most map types

Allow MapQuest Zoom Level up to 19

TODO: This should be made a property of the map source and then use that value
 rather than this temporary hack.
Prevent the program grinding to a halt if trying to deal with thousands of tiles

This can happen when using a small fixed zoom level and viewing large areas.
Also prevents very large number of tile download requests.
Change map image interpolation to a more precise one.

Although this is slightly slower - it is not called often,
 not noticeable on modern systems and the result will get added the map memory cache anyway.

Reverse of commit SHA1:9fdb940f73cb138e942ddc38eb3f1854f6de70a2
Remove blank entry on the Tools->Webtools menu list.

Make ExtTools use GtkAction rather than tacking on GtkMenu items.
Improve defaults for the GeoRef layer using the current view to suggest some values.
Fix tooltip of GeoRef northing / easting values.

It's the top left not the top right!
GeoRef Layer only works in UTM Projection Mode.

Only draw when in UTM Mode.
Add warning when adding an image and the current mode is not UTM mode as it will not be drawn.
Convert GeoRef failed image loading message into a GUI message.
[QA] These GeoRef layer functions should be static.
[QA] Tidy up DEM layer function definitions.

Remove from header as not used remotely.
Rename to remove vik_ prefix and make static.
Fix dem_layer_draw() definition to be consistent.
[QA] Consistent use of *_layer_draw parameter types.
Be less strigent in loading Geotagged images without optional GPS tags

Signed-off-by: Rob Norris <rw_norris@hotmail.com>
Store track bounding box and only attempt to draw it if some part of it
is visible on screen.

Bounds are calculated on TrackWaypoint creation (i.e. loading tracks
from a file or acquiring from an external source).

Bounds are recalculated on trackpoint changes.
Where 'simple' this is done within the vik_track update functions,
however much direct trackpoint list manipulation is performed by the TrackWaypoint layer,
such as the various merge and split functions, so the recalculation is called there.

Thus with multiple tracks, this skips attempting to draw all trackpoints
of every marked visible track when no part of the track is within the
current screen bounds.

This should mean Viking is much faster in drawing.

Note this still attempts to draw all trackpoints of a track should you
zoom 'inside' it. But this is not much of a penalty.
Only attempt to draw waypoints when they are in the screens bounding box.

Store bounding box of all the waypoints in a TrackWaypoint layer.
Waypoints bounds are calculated on layer create and whenever the waypoints positions have changed.

Bump minimum glib due to usage of g_hash_table_iter_init ()