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.

There's code that does that in ./oauth.go, cribbed from the goauth2 examples.  I've been meaning to unify the tmp directory used by these but hadn't gotten around to it yet.  Let's not glom that into here, I mentioned it mostly so I'd remember and you've have heard the idea, but if you want, a TODO in fuse_gdrive.go wouldn't hurt.