keep cache consistent with real database state

Added this because the field cache was causing my module install problems. 

Reproduce with following steps:
* module version 0.1 creates stream and adds fields x, y, z
* module version 0.2 removes z field
* module version 0.3 adds z field back again

Upgrading step by step would be fine (i.e. during development). But once deployed and the installer drops through each version in succession, the cache steps in and causes problems. Namely that adding the z field back again in 0.3 fails because the z field is already in the cache from 0.1.