Fix track not displayed from realtime GPS tracking.

Need to calculate the bounds of track,
 as follow on from optimization commits SHA1:80169badb016873d8a2e674e32820ecbe32d6788

Add method to only consider the last trackpoint added,
 otherwise for creating very long tracks it will get progressively slower.
First iteration of internal settings
Use settings to store Window layout states
Alphabetized TrackWaypoint layer ordering is now a configurable run time setting.
Use settings to store GPS values for reuse.
[QA] Tidy up general preferences into single array
Save and restore the generate image values using the settings mechanism.
Use settings for OSM Traces visibility value.
Use settings to save and restore the Goto Provider selected.
Use settings to save and restore Geotag values.
Use settings to allow configuration of hardcoded map display performance values.
Use settings to maintain the track properties dialog size between invocations.

Allow resizing back down to a minimal size after being created at a larger size.
Use settings to allow configuration of max background threads.
Start Startup preferences
Add preference to control whether the auto window settings should be used.
Add a startup option to load a default map (as defined by layer default for the map layer).

It won't add a map if Viking project file is loaded.
Enable Startup Method option to choose between using the home position, last position or loading a specified file.
Enable an optional automatic IP to location startup mode - mainly for new users to get going more easily.

The location is (attempted to be) determined by http:/www.hostip.info/
Enable detection of when Viking is run for the very first time.
On the very first startup, ask whether internet related options should default to on.