Start to make compression code more reuseable.

Move zip file handling into new a file: compression.c
Unzip comment
Support opening compressed files downloaded for the My OSM Traces feature.

Files downloaded may have been compressed by bzip2.

Use file magic to detect compression type and take appropriate decompression action.

Hence dependencies on libbz2 and libmagic are now required.
But they can be optionally turned off.
Quick hack method to enable display of compiled in libraries (albeit in the wrong section of 'Artists') in the About dialog.
Add a function to find out the distance along a track to a particular trackpoint.
Add a common method to produce an information message string about a Trackpoint.

Currently for ease of implementation the message format code is a string of characters.
Each character represents what should be inserted in relation to a Trackpoint.
One day it might evolve into something more user friendly with a frontend to control it, perhaps allowing arbitary text too.

However for now at least some control is offered :)
Enable following GPS realtime tracking even when no heading (course) is available.
SF Features#111: Add Optional Statusbar update in GPS Realtime Tracking mode.

Default to displaying speed and elevation.
SF Features#113: Allow distance from track start to be shown in the Statusbar.

Use the controllable method to generate a trackpoint sting.
By default the elevation, time, distance along track and track name
 will be shown for the selected trackpoint.

The settings string 'trkpt_selected_statusbar_format' can be adjusted if the different values are wanted.
[DOC] Document options for the Trackpoint message format codes.
Add function to get a trackpoint by distance along a track.
Add helper function distance_in_preferred_units()
Add ability to draw track names and distance labels on the viewport.

Track labels are drawn in the appropriate track colour, when set.

Options are given to draw the track names at:
 a centre position
 start and end positions
 centre, start and end

The default is to not draw them.

Also distance along tracks may be displayed with up to N labels at friendly distance amounts.

Originally I had worked(and reworked) over several differing commits,
 but too tricky to split into back into the resulting logical commits, so combined together.
[DOC] New settings value
Split TrackWaypoint layer tracks properties into an 'Advanced' section.

Mainly because there's getting lots of track layer properties,
split the more detailed control options into a new tab.
Move all editable properties of a track/route to a dedicated tab.

It seems better to distinguish editable properties and computed properties (called Statistics).
Especially since there are now more track properties to control.

This patch is reworked from Guilhem Bonnefille's initial idea/work.
Enable optional opening of the track properties dialog on the statistics tab
Fix: use g_list dedicated function instead of own code
[DOC] Tag some contextual restrictions as 'note'
Add function to refine a route with routing service

This patch add a menu entry for route in order to request a
refined version of the route.

The user is now able to plan a journey by creating a simple route
and then request a routing engine to refine this route.
This is a simple solution to extend route finder tool, adding 'via'
points in the journey.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>