Hide RemoveSwitchFallThrough implementation in the .cpp file

This cleans up the API provided by RemoveSwitchFallThrough.h, and adds
documentation about caveats of RemoveSwitchFallThrough. This change is
pure refactoring without any functional changes.

BUG=angleproject:2177
TEST=angle_end2end_tests

Change-Id: I2646e4fe3b53130b07977823cb1344e5096f67e4
Reviewed-on: https://chromium-review.googlesource.com/709194
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index ca0dde1..214e5f2 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -2137,8 +2137,7 @@
 
     if (node->getStatementList())
     {
-        node->setStatementList(
-            RemoveSwitchFallThrough::removeFallThrough(node->getStatementList()));
+        node->setStatementList(RemoveSwitchFallThrough(node->getStatementList()));
         outputTriplet(out, visit, "switch (", ") ", "");
         // The curly braces get written when visiting the statementList aggregate
     }