Fix report when .fff files are not fully read

Two things could go wrong when .fff files are not fully read:

1. The constraint "assert(*read_all || errno == EIO);"
   could fail because, according to the manual,
   feof(3) does not set errno(3), but gettimeofday(2),
   which is called after fread(3), does.

2. The tail message "NOT fully read" was never issued because
   the test was "read_all", and variable read_all was a pointer.
   Thus, the test was always true.

The not-fully-read error message now adds the output of
strerror(3) to guide the diagnose of the failure.

These bugs must be rare because they have been lurking around for
more than two years according to git's log.
They were only found due to a bug report by John Lussmyer on
September 21st, 2013.