Links definition objects.
ConfigFilesCache
Merge branch 'master' into jb/RevisionLinks#1582

Conflicts:
	GitCommands/Config/ConfigFile.cs
Merge branch 'master' into jb/RevisionLinks#1582
RevisionLinksSettingsPage - wip
wip
Fixes
Test crash fixed
Handle the case when config file doesn't exist
Merge branch 'master' into jb/RevisionLinks#1582

Conflicts:
	GitCommands/GitCommands.csproj
SettingsContainer
Organize files.
Merge remote-tracking branch 'origin/master' into feature/DistSettings

Conflicts:
	GitCommands/Settings/AppSettings.cs
	GitExtensionsTest
	GitUI/GitUICommands.cs
NoFastForwardMerge moved to RepoDistSettings as an example.
Submodule GitExtensionsTest updated

Submodule GitExtensionsTest:
    > 604b166 - Settings
Don't set settings commited to the repo indirectly.
Check if write is necessary
SettingsCache implements IDisposable
ConfigFileSettingsCache
Use FileSystemWatcher to decrease disk reads