spirv: Use linear_alloc for parsing-only data
All the vtn_* structures and arrays are used only during the lifetime of spirv_to_nir(); we don't need to free them individually nor steal them out; and some of them are smaller than the 5-pointer header required for ralloc allocations.
These properties make them a good candidate for using an arena-style allocation.
Change the code to create a linear_parent and use that for all the vtn_* allocation. Note that NIR data structures still go through ralloc, since we steal them (through the nir_shader) at the end, i.e. they outlive the parsing.
On top of !25382 (merged).