Add public interface to create Mac GrGLInterface

GrGLMakeNativeInterface is not compatible with a modular build, so
we need to eventually remove it by giving clients the ability to
explicitly make the interface they need.

This also relocates the other GrGLMake*.h into include/gpu/ganesh/gl
and adds shims until clients are migrated.

I tested this locally with:
bazel run //example/external_client:use_ganesh_gl --spawn_strategy=local \
    --features="-layering_check" -- /tmp/mac_gl.webp

Suggested review order:
 - example/external_client/* to see how a client will use
   GrGLInterfaces::MakeMac instead of GrGLMakeNativeInterface
 - src/gpu/ganesh/gl/mac/*
 - all other changes

Bug: b/293490566
Change-Id: Ied2a914150eb14ad1f71b521b07baf86666c005c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/839799
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
42 files changed