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
ClassEntity always being accessed before FieldEntity was a lucky guess at the time (though I think it still holds). Creating them explicitly would necessitate an additional (partial) tree walk because of forward references.