DESC
Don't pass negative lenghts to lockf() because it's not supported on some
systems, use plockf() instead.
EDESC

According to my fcntl's manpage, POSIX 1003.1-2001 allows l_len parameter to
be negative, and inside jread() and jreadv() we took advantage of that.
However, it also says that it's supported in Linux only since kernel 2.5.49
and 2.4.21, which is quite new.

With this patch we remove the need to use negative lenghts in lockf(), and use
our plockf() wrapper instead.

This has the bonus that on some systems the relation between lockf and fcntl
is unspecified, so we now use fcntl for all our locks.

Thanks to Pieter Grimmerink.

