Improving how we handle "slot"/"offset" calculations for fields/methods.

I'm not entirely convinced it is correct right now when interfaces are
involved. Will check.