Implement field access and name mangling

I only just realized that fields need to be handled differently
depending on whether they're used as lvalues or rvalues. I'll handle
that when we can actually assign things to them
Forward references to other classes? We could fill the maps in `preVisit(Program)`. One pass for classes (and fields), another one for methods. That's two list enumerations, which I guess one could call a partial tree walk :)