count characters if possible.
count would move past the start or end of the buffer, moves to the start or end of the buffer.
The return value indicates whether the new position of this is different from its original position, and
dereferenceable (the last iterator in the buffer is not dereferenceable). If
count is 0, the function does nothing and returns
number of characters to move, may be negative
whether this moved and is dereferenceable