Implemented fuse_buf_copy().

Cast buf as (char *) to prevent a warning in the write() wrapper.

Handle positive returns properly in read_buf(). Returning 0 seems to
work okay, but we're supposed to return the total read size.

An extra little bit for the changelog.