store cache on first fetch, expire on update

Easy fix for #455

Simply store a cached version of the model on first fetch. Expire on create, update or delete.