with one call, not with several mallocs and strdups.
- Got rid of string_area() stuff (as suggested in the "@todo").
- Enhanced free_file() to optionally free the whole struct or to
clear it (since we don't need to do both).
- Don't zero out the other flist data when we're about to free it.