R_ARM_PREL31 writes the relocated value to bits 30:0 of the place.
Bit 31 has a separate meaning and must retain its original value.
Replace the misleading sign_extend31() helper with prel31_field(). The new
helper masks the relocation result to 31 bits and combines it with bit 31
from the original place.
Closes#5225.