DESC
Use spread() inside jread() and jpread() to avoid returning partial reads.
EDESC

jread() and jpread() can return partial reads under some circumnstances; this
is quite wrong, dangerous and seriously broken, and I shouldn't have let it
happen.

I guess I was quite distracted when I wrote those wrappers.

This patch make jread() and jpread() use spread() which never returns partial
reads, unless there was an error.

jreadv() is not fixed and can potentially have the same issue too; but I'll
leave the fix for another patch because it's much more complex and I don't
even know if it's worth it (people doing scatter/gather I/O should already be
taking care of this).

