Use require("ast-types").visit instead of .traverse.

Notice how the new visitor methods allow clean decomposition of the
visitNode function. Bonus: type->method lookup is driven by a precomputed
table, so no more calling visitNode for every single node in the AST. You
can also now return a node instead of calling path.replace.