Reland Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
Additional warnings found with more testing and added C4267 warning disable only for angle_libpng

BUG=angleproject:1120

Change-Id: Ic403dcff5a8018056fa51a8c408e64207f3362eb
Reviewed-on: https://chromium-review.googlesource.com/293028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Shader.cpp b/src/libANGLE/Shader.cpp
index 8c303aa..248dfae 100644
--- a/src/libANGLE/Shader.cpp
+++ b/src/libANGLE/Shader.cpp
@@ -66,7 +66,8 @@
 
 int Shader::getInfoLogLength() const
 {
-    return  mShader->getInfoLog().empty() ? 0 : (mShader->getInfoLog().length() + 1);
+    return mShader->getInfoLog().empty() ? 0
+                                         : (static_cast<int>(mShader->getInfoLog().length()) + 1);
 }
 
 void Shader::getInfoLog(GLsizei bufSize, GLsizei *length, char *infoLog) const
@@ -89,12 +90,14 @@
 
 int Shader::getSourceLength() const
 {
-    return mSource.empty() ? 0 : (mSource.length() + 1);
+    return mSource.empty() ? 0 : (static_cast<int>(mSource.length()) + 1);
 }
 
 int Shader::getTranslatedSourceLength() const
 {
-    return mShader->getTranslatedSource().empty() ? 0 : (mShader->getTranslatedSource().length() + 1);
+    return mShader->getTranslatedSource().empty()
+               ? 0
+               : (static_cast<int>(mShader->getTranslatedSource().length()) + 1);
 }
 
 void Shader::getSourceImpl(const std::string &source, GLsizei bufSize, GLsizei *length, char *buffer)