U4-5728 - Do not run KeepAlive, ScheduledPublishing, without an url

Updates the scheduler and the scheduled tasks to use a background task runner (ported from new courier codebase with tests) so that they are web aware and wind down properly.
By default, changes all log output for NH to be Warn
Fixes: U4-5715 On startup when detecting if the db is configured we need to ensure it can also be connected to
Fixes locking check on tree collection, will speed things up a little
even slightly better locking
Makes the tree scanning and loading from the xml lazy so this no longer happens on startup but instead when trees are required, this ensures during startup there is no IO or scanning for trees, this should assist with U4-5126 config files get cleared out with zero size and of course also help a bunch with startup time.
Makes the section scanning and loading from the xml lazy so this no longer happens on startup but instead when sections are required, this ensures during startup there is no IO or scanning for sections, this should assist with U4-5126 config files get cleared out with zero size and of course also help a bunch with startup time.
Also fixes U4-5592 and U4-5746 for 7.1.9
Bump version
Fixes: U4-5391 Create config to explicitly set the 'base url' for a website that is not running as a load balanced site - used for scheduled tasks/publishing/keepalive
Merge branch '7.1.9' of https://github.com/umbraco/Umbraco-CMS into 7.1.9
start integrating the local templ storage option for examine
Fixes: U4-5789 Add native option to UmbracoExamine library to run the indexes locally
updates the local storage sync, simplifies options and does more error checking in case sync cannot occur - which will default to normal storage.
Merge branch '7.1.9' into 7.2.0

Conflicts:
	build/NuSpecs/UmbracoCms.Core.nuspec
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/Sync/ServerEnvironmentHelper.cs
	src/Umbraco.Tests/Plugins/PluginManagerTests.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/Scheduling/KeepAlive.cs
	src/Umbraco.Web/Scheduling/ScheduledPublishing.cs
	src/Umbraco.Web/Trees/ApplicationTreeRegistrar.cs
	src/UmbracoExamine/BaseUmbracoIndexer.cs
	src/UmbracoExamine/DataServices/UmbracoContentService.cs
	src/UmbracoExamine/DataServices/UmbracoMediaService.cs
	src/UmbracoExamine/UmbracoContentIndexer.cs
	src/UmbracoExamine/UmbracoMemberIndexer.cs
Fixes: U4-3737 macro container make sure you can define the allowed macros + the max number