Officially prevent connecting more than one account from the same provider
Infrastructure for extended authorization details
Additional sanity checks for activity TZ consistency
Garmin Connect service, plus GC activity listing
Added support across services for new WaypointType.Lap
First half of TCXIO module
TCXIO Dump
GC activity download
Removed unneeded EnsureTZ call in _accumulateActivities. Fixed improper Dropbox usage, or lack thereof, of UploadedTo items
Changed to having a ServiceRecord object instead of a dict.
Fixed a bunch of stuff for the new ServiceRecord object, added front-end handling for services without ext auth data. Fixed a bunch of things in TCXIO and GarminConnect + added activity upload. Added soft-launch functionality to allow services to be hidden from unconnected users.
Updated privacy page to reflect GC credential storage.
Encrypted wrapping for GC credentials.
Added new icon for reauthorization vs. the old chain-link.
Merge branch 'garminconnect' into dev
Merge branch 'dev'

Conflicts:
	requirements.txt
	tapiriik/services/Dropbox/dropbox.py
	tapiriik/services/Endomondo/endomondo.py
	tapiriik/services/RunKeeper/runkeeper.py
	tapiriik/services/Strava/strava.py
	tapiriik/settings.py
	tapiriik/sync/sync.py
Some additional logging during sync, equality comparer for ServiceRecords
Added ServiceWarning (& co.) exceptions to represent errors that did not obstruct the primary operation of a call.
Reload dashboard when service authentication state changes.
Updated unit tests for new ServiceRecord object, added a bunch more for destination eligibility.