patch 8.0.1318: terminal balloon only shows one line

Problem:    Terminal balloon only shows one line.
Solution:   Split into several lines in a clever way.  Add balloon_split().
            Make balloon_show() accept a list in the terminal.
diff --git a/src/beval.c b/src/beval.c
index d4705b8..f8bb6ba 100644
--- a/src/beval.c
+++ b/src/beval.c
@@ -134,19 +134,20 @@
 }
 
 /*
- * Show a balloon with "mesg".
+ * Show a balloon with "mesg" or "list".
  */
     void
-post_balloon(BalloonEval *beval UNUSED, char_u *mesg)
+post_balloon(BalloonEval *beval UNUSED, char_u *mesg, list_T *list)
 {
 # ifdef FEAT_BEVAL_TERM
 #  ifdef FEAT_GUI
     if (!gui.in_use)
 #  endif
-	ui_post_balloon(mesg);
+	ui_post_balloon(mesg, list);
 # endif
 # ifdef FEAT_BEVAL_GUI
     if (gui.in_use)
+	/* GUI can't handle a list */
 	gui_mch_post_balloon(beval, mesg);
 # endif
 }
@@ -257,7 +258,7 @@
 	    set_vim_var_string(VV_BEVAL_TEXT, NULL, -1);
 	    if (result != NULL && result[0] != NUL)
 	    {
-		post_balloon(beval, result);
+		post_balloon(beval, result, NULL);
 		recursive = FALSE;
 		return;
 	    }