Fix order of raising AssemblyLoadContext.Unloading and AppDomain.ProcessExit (dotnet/coreclr#8737)
The AssemblyLoadContext.Unloading event must be raised before the AppDomain.ProcessExit event.
AssemblyLoadContext.OnUnloading now subscribes to AppContext.Unloading.
Then AppContext.OnAppContextUnloading and AppContext.OnProcessExit, in that order, subscribe to AppDomain.ProcessExit.
Part of fix for dotnet/corefxdotnet/coreclr#14566
Commit migrated from https://github.com/dotnet/coreclr/commit/
d178b1287377a837773defb6b2a7f2b4e2dfc667