Fix *Dump on (apparently) empty files.
Special case for empty files was crashing, fix by removing which also supports files which report a size of zero but actually contain data such as Unix device nodes and Linux procfs.
Error where start outside file adjusted to permit a start exactly at the end of a file to permit (apparently) empty files with no output. Doing likewise for non-empty files is consistent.
Also fix closing file in case of error reading GS format from CMOS.