Encapulate the ESSL compiler into a GL object that is per-context.

 * Allows for multiple contexts have to have different client versions, caps
   and extensions without causing shader compilation failures.

BUG=angle:823

Change-Id: I523679e90be031b0b7fa385d46d6839b1cf3029f
Reviewed-on: https://chromium-review.googlesource.com/227710
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Shader.cpp b/src/libANGLE/Shader.cpp
index 2cf7119..7af4ff3 100644
--- a/src/libANGLE/Shader.cpp
+++ b/src/libANGLE/Shader.cpp
@@ -131,9 +131,9 @@
     getSourceImpl(debugInfo, bufSize, length, buffer);
 }
 
-void Shader::compile(const gl::Data &data)
+void Shader::compile(Compiler *compiler)
 {
-    mCompiled = mShader->compile(data, mSource);
+    mCompiled = mShader->compile(compiler, mSource);
 }
 
 void Shader::addRef()