Extend ABI detection to type sizes and byte order
As part of enabling a language, we detect the toolchain's target ABI using logic here and here. Currently it is primarily used to detect
sizeof(void*). Since we have to compile that test source file anyway, we might as well use it to detect more information that is always available. This can include:
- The sizes of fundamental types.
- The target architecture byte order (endianess).
The results can then be memorized and used later. Modules like
TestBigEndian could just use the results instead of performing actual checks.