patch 8.2.3725: cannot use a lambda for 'completefunc' and 'omnifunc'

Problem:    Cannot use a lambda for 'completefunc' and 'omnifunc'.
Solution:   Implement lambda support. (Yegappan Lakshmanan, closes #9257)
diff --git a/src/proto/insexpand.pro b/src/proto/insexpand.pro
index 90b5a07..d455a98 100644
--- a/src/proto/insexpand.pro
+++ b/src/proto/insexpand.pro
@@ -39,6 +39,12 @@
 void ins_compl_addleader(int c);
 void ins_compl_addfrommatch(void);
 int ins_compl_prep(int c);
+int set_completefunc_option(void);
+void set_buflocal_cfu_callback(buf_T *buf);
+int set_omnifunc_option(void);
+void set_buflocal_ofu_callback(buf_T *buf);
+int set_thesaurusfunc_option(void);
+callback_T *get_insert_callback(int type);
 void f_complete(typval_T *argvars, typval_T *rettv);
 void f_complete_add(typval_T *argvars, typval_T *rettv);
 void f_complete_check(typval_T *argvars, typval_T *rettv);
diff --git a/src/proto/tag.pro b/src/proto/tag.pro
index e9827ea..c8ef721 100644
--- a/src/proto/tag.pro
+++ b/src/proto/tag.pro
@@ -1,7 +1,7 @@
 /* tag.c */
 int set_tagfunc_option(void);
 void free_tagfunc_option(void);
-void buf_set_tfu_callback(buf_T *buf);
+void set_buflocal_tfu_callback(buf_T *buf);
 int do_tag(char_u *tag, int type, int count, int forceit, int verbose);
 void tag_freematch(void);
 void do_tags(exarg_T *eap);
diff --git a/src/proto/userfunc.pro b/src/proto/userfunc.pro
index dcc5b34..b5ea9b6 100644
--- a/src/proto/userfunc.pro
+++ b/src/proto/userfunc.pro
@@ -28,6 +28,7 @@
 int func_call(char_u *name, typval_T *args, partial_T *partial, dict_T *selfdict, typval_T *rettv);
 int get_callback_depth(void);
 int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars);
+varnumber_T call_callback_retnr(callback_T *callback, int argcount, typval_T *argvars);
 void user_func_error(int error, char_u *name);
 int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe);
 char_u *printable_func_name(ufunc_T *fp);