[lld][ELF][Morello] Increase bounds of dynamically relocated executable capabilities
The executable capabilities created by dynamic relocations used the symbol value for the base, and the symbol size as the capability limit. This results in the executable capabilities being too narrow that they could not call other functions.
Fix this by encoding dynamically relocated executable capabilities in a way similar to how the cap relocs for executable capabilities are encoded in the static linking case; i.e. set the bounds to cover the .text + .ro + .rel.ro regions.
This patch also fixes the following issues:
Set LSB of relocation addends that target executable symbols This was previously done incorrectly at the base field of the fragment.
Fix R_MORELLO_JUMP_SLOT fragments Previously only the base field was populated with the symbol value. Now the other fields of the fragment and the addend combine to point to the PLT header (&PLT)