Add on-disk caching with readahead. The cache will grow to a maximum size and then start recycling blocks. Block allocations are tracked in the leveldb, and cached data is stored in files on disk.

okay, saw your TODO, and I see why now; you're prepping for moving all of the gdrive interface inside drivedb.