Fix handling of combining characters in utf8_length() when reserve==TRUE.

Commit 550e3283 did not change utf8_length() to handle the new return
value it introduced in unicode_width().
This patch is based on a similar patch I proposed earlier.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>