Use Object.create(visitor) to create Context.prototype.

This allows visitor methods to be inherited by Context objects, so you can
write helper methods more easily:

  types.visit(ast, {
    visitCallExpression: function(path) {
      if (isSuperCall(path.value)) {
        return this.visitSuperCall(path);
      }
      this.traverse(path);
    },

    visitSuperCall: function(path) { ... }
  });

Since SuperCall is not an AST node type, the visitSuperCall method will
never be called directly by PathVisitor.prototype.visit, but it will still
be available to be called by other visitor methods, as above.