fuse: Fix seek offset calculation

Since fh->pos is already incremented by n_bytes_skipped, check if
offset == fh->pos.

This error was hidden by the fact that the operation is retried when
-EIO is returned.  When it was retried, the stream was already in the
correct position and so no seek operation was required.
fuse: Enforce sync_read

When running multithreaded, fuse can issue readahead requests out of
order which can cause subsequent reads to fail with ENOTSUPP (if seeking
backward is not supported on the stream).

Force readahead to occur in order to prevent this problem.
fuse: Make file nonseekable if it actually is

Instead of failing in read() with ENOTSUPP after the lseek on a
nonseekable stream succeeds, make the lseek fail with ESPIPE, as it
should.  This is important for applications which test the return value
of lseek to determine if the file descriptor is seekable.