patch 8.1.1321: no docs or tests for listener functions

Problem:    No docs or tests for listener functions.
Solution:   Add help and tests for listener_add() and listener_remove().
            Invoke the callbacks before redrawing.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 02ca1ae..b67aeb8 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -2009,12 +2009,11 @@
     return buf;
 }
 
-#ifdef FEAT_SIGNS
 /*
  * Get the buffer from "arg" and give an error and return NULL if it is not
  * valid.
  */
-    static buf_T *
+    buf_T *
 get_buf_arg(typval_T *arg)
 {
     buf_T *buf;
@@ -2026,7 +2025,6 @@
 	semsg(_("E158: Invalid buffer name: %s"), tv_get_string(arg));
     return buf;
 }
-#endif
 
 /*
  * "bufname(expr)" function