Remove unreferenced struct types from the AST

This expands pruning unreferenced variables so that unreferenced named
struct types can also be removed from the AST.

Includes a small cleanup in GLSL output so that the output code
matching tests can test against clean output.

BUG=chromium:786535
TEST=angle_unittests

Change-Id: I20974ac99a797e478d82f9203c179d2d58fac268
Reviewed-on: https://chromium-review.googlesource.com/779519
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/compiler/translator/RemoveUnreferencedVariables.h b/src/compiler/translator/RemoveUnreferencedVariables.h
index 3787b35..39c8327 100644
--- a/src/compiler/translator/RemoveUnreferencedVariables.h
+++ b/src/compiler/translator/RemoveUnreferencedVariables.h
@@ -5,7 +5,7 @@
 //
 // RemoveUnreferencedVariables.h:
 //  Drop variables that are declared but never referenced in the AST. This avoids adding unnecessary
-//  initialization code for them.
+//  initialization code for them. Also removes unreferenced struct types.
 //
 
 #ifndef COMPILER_TRANSLATOR_REMOVEUNREFERENCEDVARIABLES_H_