patch 8.2.4548: script-local function is deleted when used in a funcref

Problem:    Script-local function is deleted when used in a funcref.
Solution:   Do not consider a function starting with "<SNR>" reference
            counted. (closes #9916, closes #9820)
diff --git a/src/userfunc.c b/src/userfunc.c
index 42e1e89..6a5d84b 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -2215,8 +2215,9 @@
 
 /*
  * There are two kinds of function names:
- * 1. ordinary names, function defined with :function or :def
- * 2. numbered functions and lambdas
+ * 1. ordinary names, function defined with :function or :def;
+ *    can start with "<SNR>123_" literally or with K_SPECIAL.
+ * 2. Numbered functions and lambdas: "<lambda>123"
  * For the first we only count the name stored in func_hashtab as a reference,
  * using function() does not count as a reference, because the function is
  * looked up by name.
@@ -2224,7 +2225,7 @@
     int
 func_name_refcount(char_u *name)
 {
-    return numbered_function(name) || *name == '<';
+    return numbered_function(name) || (name[0] == '<' && name[1] == 'l');
 }
 
 /*