[Local GC] Remove static fields from GC interface (dotnet/coreclr#10566)
* Remove max_generation from GC interface
* [Local GC] Clean up the GC interface by removing all static fields
from it:
1) gcHeapType is replaced by g_heap_type (EE side) and g_gc_heap_type
(GC side), each of which is set on initialization. g_heap_type is
read by the DAC to determine what kind of heap is being used.
2) maxGeneration is not necessary due to the GC DAC changes.
* Rebase against master
* Comments and cleanup
* Use a heap allocation instead of alloca
* Code review feedback: remove a redundant cast and allocate generation count table once, on first use
* Address code review feedback: cache some calls to GetMaxGeneration
Commit migrated from https://github.com/dotnet/coreclr/commit/
ed57233f4d26114d45b1293ced80a09f879f72cf