New ability to stuff text into the input-buffer.

      We've replaced all calls to getch() with an indirection which
     will first try to read characters form the local buffer, and only
     fall-back to curses if that buffer is empty.

      This allows:

        stuff( ":msg('ok')\n" );

      Each time round the getch() loop a value from the input string
     will be returned.  Once the string is exhausted the further input
     will come from curses.

      Cute.