Replace GrGLInterface's function pointers with std::functions.

This is to facilitate binding to GLES2Interface in Chromium rather than the C interface. It requires capturing the GLES2Interface.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1674823002

Review URL: https://codereview.chromium.org/1674823002
diff --git a/src/gpu/gl/GrGLExtensions.cpp b/src/gpu/gl/GrGLExtensions.cpp
index e51fa04..1ddc101 100644
--- a/src/gpu/gl/GrGLExtensions.cpp
+++ b/src/gpu/gl/GrGLExtensions.cpp
@@ -62,10 +62,10 @@
 }
 
 bool GrGLExtensions::init(GrGLStandard standard,
-                          GrGLGetStringProc getString,
-                          GrGLGetStringiProc getStringi,
-                          GrGLGetIntegervProc getIntegerv,
-                          GrEGLQueryStringProc queryString,
+                          GrGLFunction<GrGLGetStringProc> getString,
+                          GrGLFunction<GrGLGetStringiProc> getStringi,
+                          GrGLFunction<GrGLGetIntegervProc> getIntegerv,
+                          GrGLFunction<GrEGLQueryStringProc> queryString,
                           GrEGLDisplay eglDisplay) {
     fInitialized = false;
     fStrings->reset();