Improve file reading
This adds support for version 4 files that have foreign data. (No, I don't know what that is.)
It also trades one set of gross hacks for another, maybe less gross hack.
With these changes, we're back to "reading all known files" status!