Runtime changes for IJW Activation (dotnet/coreclr#22636)
* Implement loading an assembly from an HMODULE on Windows.
* Use the native runtime to execute the main method so I don't have to replicate all of the startup behavior.
* If ijwhost is loaded, then call back into ijwhost to resolve tokens for vtable entries.
* Refactor our various component loaders (COM and IJW) and have IJW load components into separate ALCs when loaded from native.
* Move VTableFixups after DeliverSyncEvents in our incremental load. We need the module to be loaded to at least FILE_LOAD_DELIVER_EVENTS when resolving dependencies loaded via VTableFixups, otherwise they try to load into the default ALC.
* Only try to get ijwhost module handle on Windows.
* Use defined() instead of ifndef
* Fix off-Windows build break and fix unvalid comment.
* ComponentLoadContext->IsolatedComponentLoadContext
* Only build InMemoryAssemblyLoader when targeting windows.
* Add doc comments for IsolatedComponentLoadContext.
* Rename qcall.
* Add comment for boolean parameter.
* Add null check for managed ExecuteMainMethod entrypoint.
* Add comments in ceeload.cpp for the ijwhost method resolution.
* Add test verifying runtime callback to IJW host.
* Add test for InMemoryAssemblyLoader.LoadInMemoryAssembly.
* Fix x86 behavior rel. loading symbols by name and stdcall mangling.
* Remove exe entrypoints. The executable case for mixed-mode will go through the normal .NET Core app model (no special hosting support needed).
* Clean up whitespace
* Add test verifying M->N->M ALC switch behavior with IJW.
* Resolve the ijwhost module by probing the PE for the IJW assembly instead of hardcoding the name.
* Remove static caching in GetTokenGetterFromHostModule.
* Disable new IJW tests on Win7.
* PR Feedback.
* Cleanup extra copy of function.
* Use old-style environment checking in LoadIjwFromModuleHandle since we reference S.P.CL directly.
* Fix break in rebase
* Clean up fake mscoree code.
* Only validate that a CLR header exists. The OS verifies everything else.
* Make ijw host resolution code static to ceeload.cpp
* Use bracketed include for xplatform.h
* Update comment on _CorDllMain
* PR feedback.
* Remove .def file.
* PR feedback.
* Verify we export correctly on x86 and x64.
* Fix path to ijwhostmock for CopyConstructorMarshaler
* Disable IJW tests on arm32 nightly. Can't repro the dependency load failures. Fixes dotnet/coreclr#23358
Commit migrated from https://github.com/dotnet/coreclr/commit/
ea10aaccb09fe30f0444b821fd8d90d9257dd402