Make use of CreateBoolNode in traversers

This is just refactoring to clean up some duplicate code. A new test
is added to make sure this doesn't break UnfoldShortCircuitAST.

BUG=angleproject:1490
TEST=angle_unittests

Change-Id: I108e646f71ba631cbd5dad2055b64e6a30159742
Reviewed-on: https://chromium-review.googlesource.com/894207
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
index 030addf..a53e875 100644
--- a/src/compiler/translator/Compiler.cpp
+++ b/src/compiler/translator/Compiler.cpp
@@ -495,13 +495,11 @@
         RewriteDoWhile(root, &symbolTable);
 
     if (compileOptions & SH_ADD_AND_TRUE_TO_LOOP_CONDITION)
-        sh::AddAndTrueToLoopCondition(root);
+        AddAndTrueToLoopCondition(root);
 
     if (compileOptions & SH_UNFOLD_SHORT_CIRCUIT)
     {
-        UnfoldShortCircuitAST unfoldShortCircuit;
-        root->traverse(&unfoldShortCircuit);
-        unfoldShortCircuit.updateTree();
+        UnfoldShortCircuitAST(root);
     }
 
     if (compileOptions & SH_REMOVE_POW_WITH_CONSTANT_EXPONENT)