Fixes a bug when listing an archive.

A bug in the seek function of the new buffered IO misled the listing
operations which then failed most of the time due to believed archive
inconsistency. This bug has been fixed and the iobuf_lseek functions
optimized so underlying lseek syscall may be avoided in most cases.