termkey_interpret_csi() fills in variables in the passed pointers according to the unrecognised CSI
sequence event found in key. It should be called if termkey_getkey(3) or similar have returned a key
event with the type of TERMKEY_TYPE_UNKNOWN_CSI. Note that it is important to call this function as soon
as possible after obtaining a TERMKEY_TYPE_CSI key event; specifically, before calling termkey_getkey()
or termkey_waitkey() again, as a subsequent call will overwrite the buffer space currently containing
this sequence.
The args array will be filled with the numerical arguments of the CSI sequence. The number of elements
available in this array should be given as the initial value of the value pointed to by nargs, which will
be adjusted to give the number of arguments actually found when the function returns. The cmd variable
will contain the CSI command value. If a leading byte was found (such as '?') then it will be bitwise-
ored with the command value, shifted up by 8 bits. If an intermediate byte was found (such as '$') then
it will be bitwise-ored with the command value, shifted up by 16 bits.
*cmd = command | (initial << 8) | (intermediate << 16);