Context and transformers work

I thought it'd be nice to discuss on code, so here's a pull request. This a work in progress.

What I'm hoping to do is to implement part 1.1 described here: https://github.com/kframework/k/wiki/Design-of-the-new-compiler-parser

I'll occasionally ping people to get some reviews/feedback.
> The whole point was that the currentDefinition and currentModule fields would get updated automatically in AbstractVisitor whenever they are visited.

I think the only way to do that is by setting the field(instead of creating a new visitor with the field is set) in `AbstractVisitor`. Do you want me to do that?

(I'm asking because I thought we don't want to change any state of abstract visitor classes)