Split data store caches into 'read' and 'write' caches.

This is a better fit to normal pywws behaviour - the data files are usually
written to incrementally but read in chunks of a day or week at a time. It
also ensures that files are not written to more often than necessary,
helping to reduce wear on solid state storage.