Check disk stats before throwing on open

Sorry, wrong destination branch last time.
Small fix to make a last-minute update_stats_from_disc in File::open where the file has self->e == 0.  This solves an issue where a file (here a fofn) had the wrong file permissions when the File object was stored in the db (hence had e == 0).  Fixing the file permissions didn't help as the db was out of sync with the file on disc.  Adding this update_stats_from_disc call allows code that was going to throw anyway to check if the file is now available/readable.