patch 8.1.1332: cannot flush listeners without redrawing, mix of changes

Problem:    Cannot flush change listeners without also redrawing.  The line
            numbers in the list of changes may become invalid.
Solution:   Add listener_flush().  Invoke listeners before adding a change
            that makes line numbers invalid.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index eda18e5..0dbd651 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -768,6 +768,7 @@
     {"lispindent",	1, 1, f_lispindent},
     {"list2str",	1, 2, f_list2str},
     {"listener_add",	1, 2, f_listener_add},
+    {"listener_flush",	0, 1, f_listener_flush},
     {"listener_remove",	1, 1, f_listener_remove},
     {"localtime",	0, 0, f_localtime},
 #ifdef FEAT_FLOAT