Centralize GL format workarounds.

Instead of trying to encapsulate the GL texture format workarounds into
tables, use functions that do manual checks for specific cases.  Simplifies
the logic.

Fixes:
 * conformance/extensions/ext-sRGB.html
 * conformance/extensions/oes-texture-half-float.html
 * conformance/extensions/oes-texture-half-float-with-canvas.html
 * conformance/extensions/oes-texture-half-float-with-image.htm
 * conformance/extensions/oes-texture-half-float-with-video.html

BUG=angleproject:884

Change-Id: Ifb719fff908680fddc7c53a544e2284a42a58356
Reviewed-on: https://chromium-review.googlesource.com/289082
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/gl/RendererGL.cpp b/src/libANGLE/renderer/gl/RendererGL.cpp
index 30413af..db8ed00 100644
--- a/src/libANGLE/renderer/gl/RendererGL.cpp
+++ b/src/libANGLE/renderer/gl/RendererGL.cpp
@@ -198,7 +198,7 @@
 
 RenderbufferImpl *RendererGL::createRenderbuffer()
 {
-    return new RenderbufferGL(mFunctions, mStateManager, getRendererTextureCaps());
+    return new RenderbufferGL(mFunctions, mWorkarounds, mStateManager, getRendererTextureCaps());
 }
 
 BufferImpl *RendererGL::createBuffer()