new field cache policy

If there is a field cache, those fields are read. When getting a property that was not read from
the DB, the FULL document is reloaded (without overwriting modified fields) and that field is
added to the cache for later executions.

This should fix our issues with empty fields when the field cache is "partially complete"