[MAPS] Add OpenSeaMap source

Closes #SF3555603
Fix lack of feedback when reading erroneous GPX

When GPX file is incorrect, no error is returned. The user is not
informed that his file is incorrect and can simply imagine the file
is empty.

The status of the XML parser is now returned in order to fire the
right handling.
Prevent crashing when attempting to acquire data with a malformed (null) result of the known GPS devices list.
Prevent crashing when attempting to import with GPSBabel a file and not specifying the file type (due to a malformed (null) result of the GPSBabel file types list).
[Geotagging] Fix SF#3564795: Crashing when attempting to create waypoints from EXIF images without enough GPS information.

Don't try and use the returned NULL waypoint!
Improve feedback for handling erroneous GPX.

Extend current mechanism for reporting specific file load errors by adding a message for GPX read failures.
[Geotagging] Update RPM spec for new dependency.
More intuitive zoom actions involving the mouse to retain the location under the pointer within the viewport bounds.

As per request SF#3547438, which is clearly much better behaviour - since clearly this is the point of interest the user wants to see and thus subsequent zoom requests keep focusing on that area without having to recenter the display.

The modifiers of CTRL+SHIFT and mouse zoom retain keeping the center point in the center (which is in fact a reversal of the previous setting - unlikely to effect many users, as I didn't even know of this feature myself).

Note the keyboard & menu zoom requests always maintain the center point.
Enable zoom tool to recenter the display on the clicked position when the CTRL key is held at the same time.
Add zoom by bounds capability when using the zoom tool and holding the SHIFT key and left click to select the zoom in area.

Similar to zooming in on the OpenStreetMap default map.

In the zoom tool mode, when the SHIFT key is held down and then left mouse button is pressed it draws a bounding box area on the display.
When the left mouse button is released the zoom is performed on the selected area.
Fix GPSBabel Dynamic Device List generation on Windows Systems.

Rework babel_general_convert() to be cross platform and support the progress callback on Windows systems.

Minimize the platform specific code by using g_child_watch_add() for cleanup operations and fdopen() or _fdopen() to access the stdout stream.
The previous Windows version of the function has been removed and now all systems use the same babel_general_convert().

Hence with support of the progress callback, the means the Acquire GPS Device list and Import File With GPSBabel file types will be dynamically generated on Windows.
[Geotagging] Improve detection of image files having GPS information.

Encountered some images which have just the EXIF_TAG_GPS_VERSION_ID but nothing else.
So to confirm GPS info, check existance of more EXIF GPS tags (Latitude and Longitude)

Thus when such images are requested for geotagging they won't be erroneously skipped over.
Fix openwindow internal type to match actual usage.
Fix for Debian#685817: Statusbar Update From Thread Instability

Move the direct statusbar GTK update from the background thread into a signal to the main thread.
The statusbar update in the main thread is then performed according to GTK scheduler via the idle update mechanism.
Rework the create track drawing with a specific GC on which to draw the next potential point.

This means this GC is reset on each update and then redrawn. It also ensures the correct colour is used.
This is more reliable than trying to undraw previous information via the GDK_INVERT method, especially for Windows systems.
Fix flickering map background when creating a new track and panning the map with the mouse.

Due to the new way of drawing the next potential trackpoint, the pixmap held becomes invalid when the display is panned.
Thus a way of preventing this update is made by exposing the middle button clicks to the tools when they explicitly request it.
Hence the potential trackpoint drawing is temporarily disabled when the map is panning.
Use gdk_draw_layout() rather than gdk_draw_string() in track distance drawing
Add a background block to the track drawing distance to make the text easier to read.
Ensure correct selection of track or waypoint following name usage rework.

Follow on from commit: 3d2ad4f8f73e4fad30df83199a83d6e947a88786

Remove usage of selected item name property in the window level as it is now unnecessary.
Update ‘gdk_pixbuf_ref’ deprecated functions to the g_object_ref equivalents