Use require("recast").visit instead of types.traverse.

This has been a good exercise for me to see how well the new visitor API
works, and it has already led to some key improvements, such as
https://github.com/benjamn/ast-types/commit/1eae84eb7f9628af7cdfe7b26a87f8f3f7a091eb

I left the visitSuperCall, visitSuperCallMemberExpression, and
visitSuperMemberExpression functions where they were (instead of moving
them into the list of visitor methods) so that the diff would be more
readable.

Note that

  var visitor = types.PathVisitor.fromMethodsObject({ ... });

is essentially the same as

  class Visitor extends types.PathVisitor { ... }
  var visitor = new Visitor();

but alas it would be tricky to use ES6 class syntax to implement a
transform for ES6 classes!
Merge pull request #7 from benjamn/use-recast.visit

Use require("recast").visit instead of types.traverse.