Relocations are the last thing that we wore storing a raw section pointer to and parsing on demand.
With this patch we parse it only once and store a pointer to the actual data.
The patch also changes where we store it. It is now in InputSectionBase. Not all sections have relocations, but most do and this simplifies the logic. It also means that we now only support one relocation section per section. Given that that constraint is maintained even with -r with gold bfd and lld, I think it is OK.