Add GrGLMakeNativeInterface factory that returns sk_sp<const GrGLInterface>.

Removes the concept of a configurable "default" interface and makes the default
always be the "native" interface.

Also removes unused functions: GrGLInterfaceAddTestDebugMarker and
GrGLInterface::NewClone.

Keeps around legacy GrGLCreateNativeInterface() until clients can be weened.

Change-Id: I4a3bdafa8cf8c68ed13318393abd55686b045ccb
Reviewed-on: https://skia-review.googlesource.com/83000
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/include/gpu/gl/GrGLAssembleInterface.h b/include/gpu/gl/GrGLAssembleInterface.h
index b9881a9..db44ce7 100644
--- a/include/gpu/gl/GrGLAssembleInterface.h
+++ b/include/gpu/gl/GrGLAssembleInterface.h
@@ -9,22 +9,21 @@
 
 typedef GrGLFuncPtr (*GrGLGetProc)(void* ctx, const char name[]);
 
-
 /**
  * Generic function for creating a GrGLInterface for an either OpenGL or GLES. It calls
  * get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
  */
-SK_API const GrGLInterface* GrGLAssembleInterface(void* ctx, GrGLGetProc get);
+SK_API sk_sp<const GrGLInterface> GrGLAssembleInterface(void* ctx, GrGLGetProc get);
 
 /**
  * Generic function for creating a GrGLInterface for an OpenGL (but not GLES) context. It calls
  * get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
  */
-SK_API const GrGLInterface* GrGLAssembleGLInterface(void* ctx, GrGLGetProc get);
+SK_API sk_sp<const GrGLInterface> GrGLAssembleGLInterface(void* ctx, GrGLGetProc get);
 
 /**
  * Generic function for creating a GrGLInterface for an OpenGL ES (but not Open GL) context. It
  * calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
  * get().
  */
-SK_API const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get);
+SK_API sk_sp<const GrGLInterface> GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get);