Explicit control in tools of ANGLE frontend and backend

Update the ANGLE test GL context, GrContextFactory, and config parsing to allow explicit control of ANGLE front/backend.

This will allow us to explicitly test ES2 vs ES3 interfaces to ANGLE as well as D3D9, D3D11, and OpenGL backends.

Also makes the angle api types valid in all builds (but will just fail when SK_ANGLE=1 or not on windows for the d3d backends).

BUG=skia:5804
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381033002

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot

Review-Url: https://codereview.chromium.org/2381033002
diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp
index 5e6494f..4f18994 100644
--- a/tools/gpu/GrContextFactory.cpp
+++ b/tools/gpu/GrContextFactory.cpp
@@ -117,13 +117,24 @@
                     glCtx = CreatePlatformGLTestContext(kGLES_GrGLStandard);
                     break;
 #if SK_ANGLE
-#   ifdef SK_BUILD_FOR_WIN
-                case kANGLE_ContextType:
-                    glCtx = CreateANGLEDirect3DGLTestContext();
+                case kANGLE_D3D9_ES2_ContextType:
+                    glCtx = CreateANGLETestContext(ANGLEBackend::kD3D9, ANGLEContextVersion::kES2);
                     break;
-#   endif
-                case kANGLE_GL_ContextType:
-                    glCtx = CreateANGLEOpenGLGLTestContext();
+                case kANGLE_D3D11_ES2_ContextType:
+                    glCtx = CreateANGLETestContext(ANGLEBackend::kD3D11,
+                                                   ANGLEContextVersion::kES2);
+                    break;
+                case kANGLE_D3D11_ES3_ContextType:
+                    glCtx = CreateANGLETestContext(ANGLEBackend::kD3D11,
+                                                   ANGLEContextVersion::kES3);
+                    break;
+                case kANGLE_GL_ES2_ContextType:
+                    glCtx = CreateANGLETestContext(ANGLEBackend::kOpenGL,
+                                                   ANGLEContextVersion::kES2);
+                    break;
+                case kANGLE_GL_ES3_ContextType:
+                    glCtx = CreateANGLETestContext(ANGLEBackend::kOpenGL,
+                                                   ANGLEContextVersion::kES3);
                     break;
 #endif
                 case kCommandBuffer_ContextType: