desktop port (dotnet/coreclr#21523)
+alloc lock split into SOH and LOH
+provisional mode to fix too many gen2 GCs triggered in low mem situation when the heap has heavy pinning fragmentation
+better free list usage
+premature OOM fixes
+3 new configs: GCHeapAffinitizeMask, GCHighMemPercent, GCLOHThreshold (will be documented)
YieldProcessor scaling factor is different on core due to the different implementation on core.
Commit migrated from https://github.com/dotnet/coreclr/commit/
aa13ca95d633e9251fa040533d3d5650808455c0