Reland "Restructure Metal utils for code sharing and to match Vulkan paths."

This is a reland of commit f7f7060ed3e4d383d19c084b1d815a69e5d6c543

Original change's description:
> Restructure Metal utils for code sharing and to match Vulkan paths.
>
> Sets up a place to put shared code for YUVA.
>
> Bug: b/238756380
> Change-Id: I1108b638eb1359629c1b6268268f854a3c41aad9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/650781
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Bug: b/238756380
Change-Id: If8dfb2baf43b007add5595d27edb1547600df692
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/653736
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
34 files changed