Apply Chromium style fixes.

This addresses several minor code quality issues that are validated
in Chromium, but not yet applied to ANGLE:

* constructors and destructors must be defined out-of-line
* auto is not allowed for simple pointer types
* use override everywhere instead of virtual
* virtual functions must also be defined out-of-line

Slightly reduces binary size for me (~2k on Win, 150k on Linux).

Bug: angleproject:1569
Change-Id: I073ca3365188caf5f29fb28d9eb207903c1843e6
Reviewed-on: https://chromium-review.googlesource.com/779959
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/ResourceManager.cpp b/src/libANGLE/ResourceManager.cpp
index 1b7e966..79eb7e5 100644
--- a/src/libANGLE/ResourceManager.cpp
+++ b/src/libANGLE/ResourceManager.cpp
@@ -135,6 +135,10 @@
 
 // ShaderProgramManager Implementation.
 
+ShaderProgramManager::ShaderProgramManager()
+{
+}
+
 ShaderProgramManager::~ShaderProgramManager()
 {
     ASSERT(mPrograms.empty());
@@ -337,6 +341,10 @@
 
 // PathManager Implementation.
 
+PathManager::PathManager()
+{
+}
+
 ErrorOrResult<GLuint> PathManager::createPaths(rx::GLImplFactory *factory, GLsizei range)
 {
     // Allocate client side handles.
@@ -353,7 +361,7 @@
 
     for (GLsizei i = 0; i < range; ++i)
     {
-        const auto impl = paths[static_cast<unsigned>(i)];
+        rx::PathImpl *impl = paths[static_cast<unsigned>(i)];
         const auto id   = client + i;
         mPaths.assign(id, new Path(impl));
     }