Implement a basic recursive traversal function

The `Path` object that serves as the `this` object within the `callback` allows upwards traversal of the AST, even when a node object appears more than once in the AST.