This commit introduces a new AMDGPUPALMetadata class that:
- is inside the AMDGPU target;
- keeps an in-memory representation of PAL metadata;
- provides a method for use by LLPC to write metadata into LLVM IR;
- provides a method to read the frontend-supplied metadata from LLVM IR;
- provides methods for the asm printer to set metadata items;
- provides methods to write the metadata as a binary blob to put in a .note record or as an asm directive;
- provides a method to read the metadata as a binary blob from a .note record.
Because llvm-readobj cannot call directly into a target, I had to remove
llvm-readobj's ability to dump PAL metadata, pending a resolution to
https://reviews.llvm.org/D52821
Change-Id: I756dc830894fcb6850324cdcfa87c0120eb2cf64