BaseTools/GenFw: Fixed R_AARCH64_CALL26/R_AARCH64_JUMP26 when referring to start of a section

When R_AARCH64_CALL26/R_AARCH64_JUMP26 relocations referred to static
functions, they sometime refer to the start of the '.text' section + addend.
It means the addend is different of '0'.
The non-patched code (before applying the relocation) already contains
the correct offset.

Change-Id: I6cf484d08517803f15db75e21058023398dff34b
ArmPlatformPkg/Bds: Fixed memory leak

Device Paths were not freed after calling BDS_LOAD_OPTION_SUPPORT.CreateDevicePathNode()

Change-Id: I5075d5a7c9264700994bbc9a94a16d1121659dbf
MdeModulePkg/PartitionDxe: Fixed El Torito Volume Descriptor scanning

The offset calculation was wrongly calculated.
It was triggering an infinite loop.

Change-Id: I4385e8059f8e91b9ae7ab8855b03667e5b1a17a1
ArmPlatformPkg/Bds: Test if OptionalData is NULL before using it

Change-Id: I0ef9f9bc97509d200b02e0068b14a604c0bc5943
ArmPkg/BdsLib: Added support to change the given DevicePath of a Boot Entry

Some boot entries might not have a EFI Device Path FilePath
attached to it (eg: EFI device Path for removable device path).
This patch allows a support loader to edit the EFI Device Path
and for instance add \EFI\BOOT\BOOT(ARM|AA64).EFI

Change-Id: I6d091056eaac0e6dfcef660ec61bf2fbf7d887a2
ArmPlatformPkg/Bds: Added support to boot \EFI\BOOT\BOOT(ARM|AA64).EFI

These file paths are automatically added when a file path is not
specified (eg: case of removable device).

Change-Id: I3d6613c19cdb978daa53fcbde5bc1710c95000fe