nfs_lseek{,_async}: allow negative offsets and guard against file positions < 0

Signed-off-by: Arne Redlich <arne.redlich@googlemail.com>
libnfs-sync: nfs_{read,write}: use their _async counterparts internally

Previously nfs_read and nfs_write used to use nfs_pread and nfs_pwrite respectively.
In preparation of getting the file position handling right this has to be detangled.

Signed-off-by: Arne Redlich <arne.redlich@googlemail.com>
Fix the file position handling of the read and write calls

Since the interface is modelled after the libc calls we should try to match
their behaviour to avoid unpleasant surprises:
* read / write (sync and async flavours) update the file position
* pread / pwrite (sync and async flavours) do not update the file position
.

Signed-off-by: Arne Redlich <arne.redlich@googlemail.com>