gh-133031: Support the full Unicode range in curses.textpad.Textbox (GH-152482)
Read input with get_wch() and the window back with in_wch(), so combining
characters and characters outside the locale encoding now work where curses has
wide-character support.
edit() passes non-ASCII characters to validate() as strings, keeping ASCII and
key codes as integers so existing validators keep working.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>