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.