(tui_command_loop): New function to override gdb loop and make sure
uiout is set according to TUI mode.
(tui_command_loop): Install the specific TUI command hook.
* tuiIO.c (tui_initialize_io): Initialize tui_old_uiout.
(tui_uiout, tui_old_uiout): Make public.
* tuiIO.h (tui_uiout, tui_old_uiout): Declare.
* tui.c (tui_commands): Table of single key commands.
(tui_rl_command_key): New function to execute gdb command.
(tui_rl_command_mode): New function to temporarily leave SingleKey.
(tui_rl_next_keymap): New function to enter/leave the SingleKey mode.
(tui_rl_startup_hook): New function to avoid prompt display by
readline functions.
(tui_set_key_mode): New function to set the key mode and install
the readline keymap.
(tui_initialize_readline): Create TUI SingleKey readline map.
(tui_enable): Install rl_startup_hook.
(tui_disable): Remove it.
* tui.h (enum tui_key_mode): Declare.
(tui_set_key_mode, tui_current_key_mode): Declare.
* tuiIO.c (tui_redisplay_readline): Don't display the prompt in
SingleKey mode.
* tuiIO.h (tui_redisplay_readline): Declare.
* tuiIO.c: New management for curses and gdb terminal interactions.
(tui_tputs): Remove.
(tuiTermSetup, tuiTermUnsetup): Remove, must use normal curses ops.
(tuiBufferGetc, tui_vStartNewLines, _updateCommandInfo): Remove.
(tui_owns_terminal): Remove.
(tui_redisplay_readline): New function.
(tui_puts): New function.
(tui_prep_terminal): New function.
(tui_deprep_terminal): New function.
(tui_getc): Rename of tuiGetc, simplify and fix.
(tui_setup_io): New function.
(tui_initialize_io): New function.