Added LogonAsBatchJob to util User
Allow package downgrades for related bundles

Allow package downgrades for related bundles with proper ref-counting.
Make sure packages register their identities in the provider registry.
Uninstall compatible orphaned MSI packages
Make sure enough memory is allocated for compatible packages
Slipstream changes

Pass original source location for embedded bundles so that embedded bundles can be slipstreamed and share package source with parent bundles.
Automatically disable system restore for embedded bundles
Skip the repair of the related bundle if it has the same provider key

This is to fix this scenario
Install BundleAv1
Install PatchBundleV1 (applies to BundleA)
Install BundleAv2 (this bundle includes PatchBundleV2 as an embedded bundle)

Before fix, during install of BundleAv2, PatchBundleV1 would be repaired as a related bundle and both V1 and V2 of the PatchBundles would be on the machine.
This fix skips the repair of the related bundle if it has the same provider key as an embedded bundle that is being installed, so only V2 of the patch bundle is on the machine at the end.

Also add support for passing Ancestors to embedded burn bundles to help prevent recursion.
Add version check to delete correct update key

Update Registration key was being deleted during a bundle to bundle upgrade.
Added version check so that only if the version was the same would the key be deleted.
Fix issues with compatible packages for repair/uninstall

Don't fail uninstall when planned package was removed by related bundle
Don't repair dependent bundles when upgrading a patch or addon bundle
Update pull request with review comments
Add support for the new AlwaysCache attribute in the compiler and linker.
Add it to the BootstrapperApplicationData.xml along with InstallCondition.
Add them to the Burn structs and load them from XML.
Implement AlwaysCache in the engine.
Add a compiler warning if AlwaysCache is set to yes and Cache is specified.
Update History.md.
Bug 4279: Can't run 'Heat Project' on VS2013 .vcxproj - Added case to ConstructMsbuild40Project() using MSBuild version "12.0.0.0"
Merge branch 'issue4242' of https://github.com/heaths/wix3 into develop

Conflicts:
	History.md
Undo Tools.sln Upgrade to VS2013
Commit fixed signing build tasks from Outercurve.
WixBuild: Version 3.9.421.0
Merge branch 'develop' of https://github.com/wixbuild/wix3 into develop

Conflicts:
	History.md
Merge pull request #23 from wixbuild/develop

Conflicts:
	History.md
Change the type of the Cache attribute to the new YesNoAlwaysType, and remove the AlwaysCache attribute.