compiler/types: Use a string table for builtin type names
Built on top of !25006 (merged).
See commit messages for detailed descriptions. The effect of last patch is turning
text data bss dec hex filename
15923745 276964 9800 16210509 f75a4d build/src/intel/vulkan/libvulkan_intel.so
23538010 418488 204280 24160778 170aa0a build/src/gallium/targets/dri/iris_dri.so
libvulkan_intel.so: 10239 relocations, 5790 relative (56%), 379 PLT entries, 0 for local syms (0%), 0 users
iris_dri.so: 15122 relocations, 14933 relative (98%), 440 PLT entries, 1 for local syms (0%), 0 users
into
text data bss dec hex filename
15935289 259692 9800 16204781 f743ed build/src/intel/vulkan/libvulkan_intel.so
23550194 401216 204280 24155690 170962a build/src/gallium/targets/dri/iris_dri.so
libvulkan_intel.so: 9970 relocations, 5521 relative (55%), 379 PLT entries, 0 for local syms (0%), 0 users
iris_dri.so: 14853 relocations, 14664 relative (98%), 440 PLT entries, 1 for local syms (0%), 0 users