This issue was copied from https://github.com/microsoft/checkedc-clang/issues/1039 ---- Fixes #1032 This PR refactors PreorderAST to move Coalesce, Sort, ConstantFold, Compare, Cleanup, and PrettyPrint behavior into Node subclass methods.