Refactored addch/mvaddch into AddCh trait.
Abstracted AddCh trait over impls of ToCh encoding trait.
Switched getch implementation to use the wide character form.

(If I encounter a platform that does not support the wide character
methods, on its ncurses implementation, then we should
conditionally-compile in the old code.)
Renaming getstr to getascii in prep for switch to wide char API.
Missed one case in previous commit.
Refactored ascii-oriented input methods into GetAscii trait.

(Maybe I should rename its methods back to [mv]get[n]str.  We will see.)
Added wide character string reading and writing.

Generalized the error recovery routines so that one can specify
distinct handlers for getch vs getstr.  (The other option here is to
have one handler but force the user to provide both a default raw_ch
and a str for the Return variant.  That might make more sense.)

Making a simple uniform printer required adding the HasYX trait so
that I can observe the current (y,x) coordinate of the cursor.