Move entries from write to read cache on flush

There's a large chance that entries will be accessed again after
being written.
Cache negative hits
Change the read cache to a MRU cache
Update VerifyDB and WriteChainState to make use of LRU cleanup