SkJpegCodec: Add extended XMP support

Remove the functions that expose XMP metadata to SkAndroidCodec. That
was originally added with the idea that we were going to have the
client parse the XMP. Given that those functions ignore extended XMP
metadata, they are now just unused foot-guns.

Remove XMP metadata from the SkCodec base class and from SkJpegCodec.
Only extract the XMP metadata if it is requested.

Remove tests that check that we correctly extract XMP metadata.
Several of the gainmap tests rely on XMP metadata, so this does not
meaningful reduce coverage.

Add a SkJpegXmp class to handle the extraction and validation of the
the extended XMP metadata, and provide an interface for looking up
nodes.

The extended XMP metadata is spread across several segments and must
be stitched together. It is then intended to be parsed and the
resulting tree should be merged with the standard XMP metadata. We
do not merge the trees (we don't have code to do such a thing hanging
around), and instead maintain the two trees separately. When searching
for content in the trees, we search the two trees sequentially.

Change the HDRGM and JpegR decoders to use SkJpegXmp.

Change the HDRGM test image to one that uses extended XMP metadata.

Bug: skia:14031
Change-Id: Ic8b789f1b18155c2529bec20f96310ac328db17f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/633467
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Christopher Cameron <ccameron@google.com>
14 files changed