[SPIRV] Infer external pointer parameter types from mangled names (#230342)
Pointer parameters of external declarations can fall back to i8 because
there is no body for pointee type inference.
Recover scalar and vector pointees from unambiguous mangled signatures
and use them consistently for function types
and calls.
Preserve explicit pointee attributes and existing builtin handling. Keep
the byte-pointer fallback for unsupported types, vector ranks, and
signatures whose parameters cannot be safely matched to LLVM arguments.