patch 8.0.0222: blockwise put on multi-byte character misplaced

Problem:    When a multi-byte character ends in a zero byte, putting blockwise
            text puts it before the character instead of after it.
Solution:   Use int instead of char for the character under the cursor.
            (Luchr, closes #1403)  Add a test.
diff --git a/src/ops.c b/src/ops.c
index 0853fd0..4d01ef1 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3550,7 +3550,7 @@
      */
     if (y_type == MBLOCK)
     {
-	char	c = gchar_cursor();
+	int	c = gchar_cursor();
 	colnr_T	endcol2 = 0;
 
 	if (dir == FORWARD && c != NUL)