Add AVIF decoding support using libavif

Add an SkCodec implementation for AVIF decoding that uses libavif.

libavif also depends on libgav1 (for AV1 decoding) and libyuv (for
scaling and YUV to RGB color conversion).

Some notes:
 * The for libgav1 and libyuv are intended to be functional
   but not necessarily optimal. This change is primarily intended
   to be on the Android framework where the GN system is not used.
   So, there are possibilities for the GN files to be optimized.
 * The AVIF test files are obtained by transcoding existing skia
   test resources (of the same name) into AVIF.
 * The codec is disabled by default and enbled using a build
   time flag (skia_use_libavif).

Test: New unit tests pass with skia_use_libavif = true.
Change-Id: I1f0188eec71e490e51aa5fb87feac182e1b7d246
Bug: b/240344467
Reviewed-by: Leon Scroggins <>
Commit-Queue: Leon Scroggins <>
19 files changed