patch 9.0.0813: Kitty terminal is not recognized

Problem:    Kitty terminal is not recognized.
Solution:   Recognize Kitty by the termresponse and then do not set
            seenModifyOtherKeys, since Kitty doesn't support that.
            (issue #11413)
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index 92bd4cd..5bcc191 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -1647,7 +1647,8 @@
         \ cursor_style: 'u',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'u',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   set t_RV=
@@ -1681,7 +1682,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'u',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   set t_RV=
@@ -1700,7 +1702,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'u',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
 endfunc
 
@@ -1742,7 +1745,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'y',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
   call assert_equal("\<Esc>[58;2;%lu;%lu;%lum", &t_8u)
 
@@ -1772,7 +1776,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'y',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   set t_RV=
@@ -1807,7 +1812,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'n',
         \ underline_rgb: 'y',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   set t_RV=
@@ -1831,7 +1837,8 @@
         \ cursor_style: 'u',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'u',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
   call assert_equal(a:set_by_user ? default_value : '', &t_8u)
 endfunc
@@ -1867,7 +1874,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'y',
-        \ mouse: 'u'
+        \ mouse: 'u',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   " xterm >= 95 < 277 "xterm2"
@@ -1882,7 +1890,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'u',
-        \ mouse: '2'
+        \ mouse: '2',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   " xterm >= 277: "sgr"
@@ -1897,7 +1906,8 @@
         \ cursor_style: 'n',
         \ cursor_blink_mode: 'u',
         \ underline_rgb: 'u',
-        \ mouse: 's'
+        \ mouse: 's',
+        \ kitty: 'u',
         \ }, terminalprops())
 
   " xterm >= 279: "sgr" and cursor_style not reset; also check t_8u reset,
@@ -1909,6 +1919,30 @@
   call test_override('term_props', 0)
 endfunc
 
+func Test_xx08_kitty_response()
+  " Termresponse is only parsed when t_RV is not empty.
+  set t_RV=x
+  call test_override('term_props', 1)
+
+  set ttymouse=xterm
+  call test_option_not_set('ttymouse')
+  let seq = "\<Esc>[>1;4001;12c"
+  call feedkeys(seq, 'Lx!')
+  call assert_equal(seq, v:termresponse)
+  call assert_equal('sgr', &ttymouse)
+
+  call assert_equal(#{
+        \ cursor_style: 'u',
+        \ cursor_blink_mode: 'u',
+        \ underline_rgb: 'y',
+        \ mouse: 's',
+        \ kitty: 'y',
+        \ }, terminalprops())
+
+  set t_RV=
+  call test_override('term_props', 0)
+endfunc
+
 func Test_focus_events()
   let save_term = &term
   let save_ttymouse = &ttymouse