Disk paging for the thumbnail cache

To be able to handle large collections quickly without dedicating impractical amounts of RAM to cache there needs to be disk caching of the thumbnail contents. This implements a very simple method that's complementary to the current memory+disk serialization cache:

  * Whenever dt_cache_gc runs and evicts a cache slot, write that to disk
  * Whenever dt_cache_read_get has a cache miss, first see if it's on disk and load it if it exists

I called this the filebacked option to dt_cache and it's enabled with dt_cache_set_filebacked. After that everything is transparent to the caller. The filebacking was enabled for DT_MIPMAP_0 through DT_MIPMAP_3 (the thumbnail levels).

This patch stills needs review, particularly for the correctness of the locking, especially inside dt_cache_read_get where we now sometimes write into the slot but don't have a write lock. From the context I wasn't sure it was needed, but I may be wrong.