Add support for ES31 context creation

The dEQP test for context creation passes.

SH_WEBGL3_SPEC has been added, but it should be considered whether we
should keep it, remove it or rename it. It was added so that there is
a webgl mapping to es 310 shaders. Check Compiler.cpp. The bison file
has been modified so that some tokens from es3 can be also used in
es31 as well.

A separate macro ES3_1_ONLY is added so that some tokens are limited
only for es 310 shaders.

BUG=angleproject:1442
TEST=angle_unittests

Change-Id: I2e5ca227c96046c30dc796ab934f3fda9c533eba
Reviewed-on: https://chromium-review.googlesource.com/360300
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/gl_tests/FramebufferTest.cpp b/src/tests/gl_tests/FramebufferTest.cpp
index 1c679f6..430ca84 100644
--- a/src/tests/gl_tests/FramebufferTest.cpp
+++ b/src/tests/gl_tests/FramebufferTest.cpp
@@ -83,7 +83,7 @@
             return;
         }
 
-        int clientVersion = getClientVersion();
+        int clientVersion = getClientMajorVersion();
         if (clientVersion < minESVersion)
         {
             return;
@@ -189,7 +189,7 @@
 
 TEST_P(FramebufferFormatsTest, RGB8)
 {
-    if (getClientVersion() < 3 && !extensionEnabled("GL_OES_rgb8_rgba8"))
+    if (getClientMajorVersion() < 3 && !extensionEnabled("GL_OES_rgb8_rgba8"))
     {
         std::cout << "Test skipped due to missing ES3 or GL_OES_rgb8_rgba8." << std::endl;
         return;
@@ -211,7 +211,7 @@
 
 TEST_P(FramebufferFormatsTest, RGBA8)
 {
-    if (getClientVersion() < 3 && !extensionEnabled("GL_OES_rgb8_rgba8"))
+    if (getClientMajorVersion() < 3 && !extensionEnabled("GL_OES_rgb8_rgba8"))
     {
         std::cout << "Test skipped due to missing ES3 or GL_OES_rgb8_rgba8." << std::endl;
         return;
@@ -232,7 +232,7 @@
 
 TEST_P(FramebufferFormatsTest, RenderbufferMultisample_DEPTH32F)
 {
-    if (getClientVersion() < 3)
+    if (getClientMajorVersion() < 3)
     {
         std::cout << "Test skipped due to missing ES3." << std::endl;
         return;
@@ -248,7 +248,7 @@
 
 TEST_P(FramebufferFormatsTest, RenderbufferMultisample_DEPTH32F_STENCIL8)
 {
-    if (getClientVersion() < 3)
+    if (getClientMajorVersion() < 3)
     {
         std::cout << "Test skipped due to missing ES3." << std::endl;
         return;
@@ -316,7 +316,7 @@
 // Test that a renderbuffer with zero height but nonzero width is handled without crashes/asserts.
 TEST_P(FramebufferFormatsTest, ZeroHeightRenderbuffer)
 {
-    if (getClientVersion() < 3)
+    if (getClientMajorVersion() < 3)
     {
         std::cout << "Test skipped due to missing ES3" << std::endl;
         return;