Implement uefi variable authentication

Variable authentication is a way to ensure the integrity and
authenticity of certain UEFI variables. To modify or delete
such variable the request has to be verified by other variables
that store the keys. This change implements the aforementioned
functionality.
efi_image_authentication.h was copied from
https://github.com/tianocore/edk2 repository:
sha: c96b4da2a079eb837ab3af9aeb86a97078b3bde6
Original file: MdePkg/Include/Guid/ImageAuthentication.h
Some lines were also added to this file from: MdePkg/Include/Protocol/Hash.h
For details please refer to the comments in the source.

Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Change-Id: I05b8406834ebb77ab21c5fef61d0327625ec0e72
13 files changed