[lld] Fill section gaps with trap instructions (#176845)
Fills unused parts of code segments with trap instructions instead of
zeroes. This is especially useful on x86-64 since 0x00 0x00 is a
two-byte instruction that performs a memory access. Benefits:
- Provides an explicit trap when executing invalid code.
- Required for security reasons when targeting LFI.
- Makes disassembling easier, especially without symbol information.
Previously an odd number of zero bytes between sections could cause a
disassembler to incorrectly disassemble the remainder of the program.