Fixed auxiliary field propagation to model subclasses.

Assume the following three models:

class A(model):
    fk = ForeignKey('C')

class B(A):
    pass

class C(model):
    pass

In this scenario, the auxiliary field fk_id in model A would get created
only after class B has been initialized. At this point, model B has
already initialized its field caches, therefore when fk_id is added to A,
only A's caches are invalidated and B never found out about the existence
of this field.

Fixed the issue by descending into each model's subclasses when
invalidating field caches.

This commit does not fix any tests, it only allows one to advance a little
bit further and error out later.