Add missing guard #defines.
Put TeslaVisitor in its own compilation unit.

This speeds up incremental recompilation a bit.
Move Tesla{Action,Consumer} out of Tool.cpp.

We are about to increase the sophistication of AST consumption (e.g. looking for more than one kind of event!), so do the preparatory refactoring.