[ilasm] Lazily allocate memory in Indx256 (#76590)
Indx256 is a trie (or prefix tree) used to map labels to instructions. It is very space-intensive because it allocates 256-element arrays for child nodes. This is a localized fix to lazily allocate the child arrays and to split them into two 128-element arrays to handle common cases such as ildasm's output (IL_<hex>). A more aggressive change to a different data structure would save much more memory but should probably include an analysis of why a trie was originally used.
Fixes #38515, #38529, #43818, and #73139. I don't think hugeExpr1 (#38515) is going to get picked up by our current testing since the ilasmroundtrip run doesn't turn off tiered compilation, but I did check its behavior on x86 locally.