Isolate GlslangWrapper header from most of ANGLE.

Since we might want to use the ANGLE PoolAlloc in the Vulkan back-end,
we want to make completely sure that it doesn't show up in any header
that might be included with the Glslang headers, since this could
cause a conflict.

This change moves as much as possible to forward-declaring instead of
including headers directly in ProgramLinkedResources.h. This means
making several internal Program helper classes external. I.E. instead
of Program::Bindings, we have ProgramBindings.

It also redeclares a "using" in two places, since it isn't possible to
forward declare these, and it seemed overdesigned to put the using in
a separate header.

Bug: angleproject:2264
Change-Id: Idd08706580c927327dddf46e86acbcd2c4e3286f
Reviewed-on: https://chromium-review.googlesource.com/792270
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/ProgramLinkedResources.cpp b/src/libANGLE/ProgramLinkedResources.cpp
index a33f751..d4308a3 100644
--- a/src/libANGLE/ProgramLinkedResources.cpp
+++ b/src/libANGLE/ProgramLinkedResources.cpp
@@ -34,7 +34,7 @@
     return nullptr;
 }
 
-int GetUniformLocationBinding(const Program::Bindings &uniformLocationBindings,
+int GetUniformLocationBinding(const ProgramBindings &uniformLocationBindings,
                               const sh::Uniform &uniform)
 {
     int binding = uniformLocationBindings.getBinding(uniform.name);
@@ -65,7 +65,7 @@
 
 bool UniformLinker::link(const Context *context,
                          InfoLog &infoLog,
-                         const Program::Bindings &uniformLocationBindings)
+                         const ProgramBindings &uniformLocationBindings)
 {
     if (mState.getAttachedVertexShader() && mState.getAttachedFragmentShader())
     {
@@ -172,8 +172,7 @@
     return true;
 }
 
-bool UniformLinker::indexUniforms(InfoLog &infoLog,
-                                  const Program::Bindings &uniformLocationBindings)
+bool UniformLinker::indexUniforms(InfoLog &infoLog, const ProgramBindings &uniformLocationBindings)
 {
     // All the locations where another uniform can't be located.
     std::set<GLuint> reservedLocations;
@@ -270,7 +269,7 @@
 
 bool UniformLinker::gatherUniformLocationsAndCheckConflicts(
     InfoLog &infoLog,
-    const Program::Bindings &uniformLocationBindings,
+    const ProgramBindings &uniformLocationBindings,
     std::set<GLuint> *reservedLocations,
     std::set<GLuint> *ignoredLocations,
     int *maxUniformLocation)