Fix problem with shared state in AstTransformer.

The AstTransformer used a shared state making polymorph calls on the
first created instance. This blew up when state was added to
AstTransformer (2 tests failing).

This change uses the visitor's mechanism that allows passing an explicit
receiver using visit_this instead of just visit. (And as a precaution,
the visitors are configured with a nil default receiver).