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
```java
class A {
  public void test(B b) {
   System.out.println(b.b);
  }
 public static void main(String args[]) {}
}
class B {public int b;}
```
won't compile. So I guess we will need a preVisit or proper on-the-fly-creation.