feat(input): parse OSC 22 pointer-shape replies into PointerShapeEvent master
Terminals implementing the kitty mouse-pointer-shape protocol answer an OSC 22 query on the input stream. The parser now recognizes these replies (ESC ] 22 ; <payload> ST|BEL) and surfaces them as a new InputEvent variant carrying the raw payload string. The payload is surfaced verbatim, not interpreted: the same reply shape covers a current-shape name, "0" for an empty stack, and a support-query list ("1,0,1"). Which applies depends on the query the caller sent, so correlation is the caller's responsibility — keeping the parser stateless and independent of the renderer (INV-8). Emitting the queries and setting shapes is an output concern and lives elsewhere. Set-only terminals (e.g. Ghostty) never reply, so they never produce the event; absence within a timeout is the unsupported contract, not an error.