Add GeoLocation support to MediaPortal.
Implement GeoLocation in Weather Plugin
Auto detect if Weather Plugin hasn't been setup and redirect user to setup screen.
Add detect button to Setup screen search form.
Added some extra debugging to GeoLocation/GeoLocationService.cs to get an idea of how it works for others.
Major rework to OnlineLibraries

Came up with a standard structure for handling different online API's:
Libraries/<Provider>/<Unique name related to API>.cs
Libraries/<Provider>/Data/<Response Type>Response.cs

Implemented GeoLoctionService into OnlineLibraries

Refactored old GeoLocationMatcher plus supporting libraries into GeoLocationService

Removed external plugin for GeoLocation

Refactored code to use the new OnlineLibraries structure where required.

Implemented detection of weather first run to redirect to setup screen.

Implemented detection button.

Note: Preferred GeoLocation method using System.Location.Devices is currently not implemented due to issues.
Implemeted System.Devices.Location GeoCoordinateWatcher as a GeoLocaiton Service.
Fixed OpenStreetMap 'place_id' problems (number generated exceeded int length, stored as string instead).
Removed Designer tag from plugins.xml ref. in Weather.csproj

Note: Needs testing internationally (I think I accounted for everyone).
Added summary's to all public API functions related to GeoLocation.

Changed Microsoft/GPSLookup.cs to suppress the initial warning asking for permission to access location data (needs testing).

Code cleanup and reorganising.
Disabled Microsoft GeoLocation Service due to security prompt breaking the user experience.
Added NoData to City.cs
Implemented fix for UI Updating when all locations removed not triggering in WeatherModel.cs and CurrentWeatherModel.cs (note: needs to be updated with dev for a few patches to work properly).
Removed duplicate code in Weather/Models/WeatherModel.cs and weather.xaml regarding first time detection.
Updated Weather/Models/WeatherSetupModel.cs to reset properly when no locations are stored.