patch 8.2.2728: special key names don't work if 'isident' is cleared

Problem:    Special key names don't work if 'isident' is cleared.
Solution:   Add vim_isNormalIDc() and use it for special key names.
            (closes #2389)
diff --git a/src/charset.c b/src/charset.c
index db0c146..10aa2e8 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -835,6 +835,16 @@
 }
 
 /*
+ * Like vim_isIDc() but not using the 'isident' option: letters, numbers and
+ * underscore.
+ */
+    int
+vim_isNormalIDc(int c)
+{
+    return ASCII_ISALNUM(c) || c == '_';
+}
+
+/*
  * return TRUE if 'c' is a keyword character: Letters and characters from
  * 'iskeyword' option for the current buffer.
  * For multi-byte characters mb_get_class() is used (builtin rules).