This new traverser class allows clients to re-use the traversal logic
which was previously part of ASTDumper. This means that alternative
visit logic may be implemented, such as
- Dump to alternative data formats such as JSON
- Implement AST Matcher parent/child visitation matching AST dumps