Add scratch file handles.
Now a file handle can refer to a disk file, to an in-memory
structure, or to the "inline" file, instead of just to a disk
file. The introduction of new categories means that special cases
for the inline file in a few places could be eliminated, but it
also means that code that assumed that a handle refers to a file
has to check for that.
Also, now file handles can be freed, so code now must be sure not
to access a handle after closing it (with fh_close()).
Plus some cleanups.