Log when file:pread returns less data than requested

Several places in couch_file call file:pread and expect exactly as many bytes
as requested. A badmatch occurs when the file contains less bytes than this
and the subsequent log event tries to record the binary itself.

This patch adds pread_exactly which will log details of the short read and
return eof instead of {ok, binary()}, thus cleaning up the log.

BugzID: 12970
Log file corruption at emerg level too