Add support for decoding the AV1 image format (AVIF).

Adds libavif library to //third_party and implements a Blink
ImageDecoder using the library.

Need to do:
- Implement YUV8 decoding support. Need YUV8 and YUV16 support.
- Alpha images are not working correctly.
- Implement support for HBD output for HBD images.
- Implement color space support.
- Set duration, disposal method, and alpha blend source from file
  format.
- Add tests.
- Support cropping, rotation, and mirroring.

Based on patch set 9 of
https://chromium-review.googlesource.com/c/chromium/src/+/1707404

Author: Dale Curtis <[email protected]>
Contributor: Wan-Teh Chang <[email protected]>

Tested:
blink_common_unittests
blink_common_unittests --enable-features=AVIF
blink_platform_unittests
blink_platform_unittests --enable-features=AVIF
blink_unittests
blink_unittests --enable-features=AVIF
chrome
chrome --enable-features=AVIF

Bug: 960620
Change-Id: I82cc50c63c0696bbf4d747df5001213885fc2b86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2101317
Commit-Queue: Wan-Teh Chang <[email protected]>
Reviewed-by: Martin Barbella <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Reviewed-by: Peter Kasting <[email protected]>
Reviewed-by: Dale Curtis <[email protected]>
Cr-Commit-Position: refs/heads/master@{#757285}
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index 7fba3348..1eab95a 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -496,5 +496,8 @@
 
 const base::Feature kAppCache{"AppCache", base::FEATURE_ENABLED_BY_DEFAULT};
 
+// Enables the AV1 Image File Format (AVIF).
+const base::Feature kAVIF{"AVIF", base::FEATURE_DISABLED_BY_DEFAULT};
+
 }  // namespace features
 }  // namespace blink