Reorganize the translation visitor.

Combine the expressin translator and the other translator.  Extend the
abstract class AstVisitor instead of GeneralizingAstVisitor so that
there are no default implementations of visit methods.  Provide visit
implementations for all syntactic forms, including some
implementations that are 'unimplemented' or 'unreachable'.