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 idea is to prevent subclasses of Visitor from setting the field or making its value public. Obviously there are ultimately ways around, but it's still a nice API.