Make output variables part of Program's shared data.

Also initialize this structure within Program instead of DynamicHLSL.
This should have benefits for other back-ends. Also these variables
weren't being serialized and de-serialized with the program binary,
which could mess up WebGL apps that use MRT.

BUG=angleproject:1123

Change-Id: Ic0dd4840f26441a1bee8527dfa178b24daf82f8a
Reviewed-on: https://chromium-review.googlesource.com/294571
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/ProgramImpl.h b/src/libANGLE/renderer/ProgramImpl.h
index 954ada3..453fdb7 100644
--- a/src/libANGLE/renderer/ProgramImpl.h
+++ b/src/libANGLE/renderer/ProgramImpl.h
@@ -43,8 +43,7 @@
     virtual LinkResult link(const gl::Data &data,
                             gl::InfoLog &infoLog,
                             gl::Shader *fragmentShader,
-                            gl::Shader *vertexShader,
-                            std::map<int, gl::VariableLocation> *outputVariables) = 0;
+                            gl::Shader *vertexShader) = 0;
 
     virtual GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) = 0;