Replace the Model interface with a base class, containing
simple cache helper methods.
This is effectively a replacement of Lunr\Cache, but differs in key
areas:
- Error handling moves to the PSR-6 implementation
- We only allow string keys for cache items
- By not allowing NULL values in the cache, we can avoid calling
isHit()