Check in shim typeforwards and remove the dependency on the underlying targeting packs (#79147)
* Make .NET Framework and .NET Standard facade changes trackable
Fixes https://github.com/dotnet/runtime/issues/65997
GenFacade is a tool that inspects a contract assembly's public API surface safe area, compares it with a passed in assembly closure and emits a C# source file with type forwards in it so that the satisfied API can be forwarded from the contract to the "implementation". GenFacades is used to construct the .NETFramework and the .NETStandard shim assemblies which live under src/libraries/shims/.
The generated source file isn't checked into the tree, it's placed into the project's intermediate output path. IMO it would help if we check these files into the tree so that any changes that impact shims - intentional or unintentional - are trackable. As an example, I just recently refactored how the shims are structured under src/libraries/shims and unintentionally removed a type forward from an assembly. I only noticed this regression by pure luck later.
The priority of this issue just rose because source build plans to remove their .NET Framework reference assembly packages during the .NET 8 release. That means that we can't automatically generate the type forwards during source-build. I will work on removing the dependency and check the type forwards in instead.
* Make shim projects declare the dependencies explicitly
Also remove the System.Xml special runtime project which isn't necessary
anymore as the compiler now allows type forwards to Obsolete types with
error=true.
* System.Core build fix
* Remove unused file
* Revert "Remove unused file"
This reverts commit
2f5d410a1ff2ed4705a7256c19cd65aa11107267.
* Add README and fix GenFacades zero version logic