patch 8.1.1335: listener callback is called after inserting text

Problem:    Listener callback is called after inserting text.
Solution:   Flush the changes before inserting or deleting a line.  Store
            changes per buffer.
diff --git a/src/proto/change.pro b/src/proto/change.pro
index f0f390b..79306e3 100644
--- a/src/proto/change.pro
+++ b/src/proto/change.pro
@@ -5,6 +5,7 @@
 void f_listener_add(typval_T *argvars, typval_T *rettv);
 void f_listener_flush(typval_T *argvars, typval_T *rettv);
 void f_listener_remove(typval_T *argvars, typval_T *rettv);
+void may_invoke_listeners(buf_T *buf, linenr_T lnum, linenr_T lnume, int added);
 void invoke_listeners(buf_T *buf);
 void changed_bytes(linenr_T lnum, colnr_T col);
 void inserted_bytes(linenr_T lnum, colnr_T col, int added);