Minor GCC fixes

- Added missing typename keyword
- Use proper filenames includes (this matters when cross compiling on case sensitive OSes)
- Added <string> include where GCC requires it
- Avoid collision between enum variables and template params

Issue=358
Signed-off-by: Daniel Koch

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1261 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libEGL/ShaderCache.h b/src/libEGL/ShaderCache.h
index da88423..cfe523b 100644
--- a/src/libEGL/ShaderCache.h
+++ b/src/libEGL/ShaderCache.h
@@ -42,7 +42,7 @@
     ShaderObject *create(const DWORD *function, size_t length)
     {
         std::string key(reinterpret_cast<const char*>(function), length);
-        Map::iterator it = mMap.find(key);
+        typename Map::iterator it = mMap.find(key);
         if (it != mMap.end())
         {
             it->second->AddRef();
@@ -71,7 +71,7 @@
 
     void clear()
     {
-        for (Map::iterator it = mMap.begin(); it != mMap.end(); ++it)
+        for (typename Map::iterator it = mMap.begin(); it != mMap.end(); ++it)
         {
             it->second->Release();
         }