Restore CompareFiles() behavior on irregular files
Restore CompareFiles() behavior on irregular files

Commit 1b0e261 changed CompareFiles() behavior for non-regular files
(ie. character device files, etc) and this commit restores it.  Since
non-regular files typically have Size() == 0 but can still return data
when Read(), often without ever reaching EOF, it reverts to using the
defaultMaxSize for such files where the Size() value isn't accurate.

Note - it's likely better to use CompareReaders() for this, instead of
CompareFiles().  In particular, the semantics when using Multiple mode
are almost certainly unexpected; the comparison could cache the value of
/dev/urandom, for example, and that is probably not desired.  And
reading from unlimited streams will almost inevitably hit the MaxSize
limit and return an error anyway, so the MaxSize limit isn't
particularly useful for setting a non-error limit on the amount of bytes
Read().  LimitedReaders can be used for this instead of MaxSize.  So it
would seem to make sense to instead disallow CompareFiles() on
non-regular files.

udhos/equalfile,udhos/equalfile