[X86] Quote symbol names that collide with registers/keywords in Intel syntax (#186570)
When outputting Intel syntax assembly, symbol names that match register
names (e.g., `rsi`, `rax`) or keywords (`byte`, `ptr`, etc.) must be
quoted, otherwise the assembler parses them as registers/keywords
instead of symbol references.
Fix this by populating MCAsmInfo::ReservedIdentifiers with all X86
register names and Intel syntax keywords. isValidUnquotedName() checks
this set and forces quoting when a symbol name matches.
```
% cat rsi.c
void rsi(void); void foo(void) { rsi(); }
// old clang
% clang -c rsi.c -save-temps -masm=intel -fno-pic -o - | llvm-objdump -dr -
...
4: ff d6 callq *%rsi
// new clang
% fclang -c rsi.c -save-temps -masm=intel -fno-pic -o - | llvm-objdump -dr -
...
4: e8 00 00 00 00 callq 0x9 <foo+0x9>
0000000000000005: R_X86_64_PLT32 rsi-0x4
% cat byte.c
void byte(void); void foo(void) { byte(); }
// old clang
% clang -c byte.c -save-temps -masm=intel -fno-pic -o -
byte.s:15:11: error: Expected 'PTR' or 'ptr' token!
// new clang => good
```