finished input! Go ahead; kick the tires!

For the longest time, the 2nd byte in a multibyte sequence was blocking on select. I discovered using i_stream.read(1) does not interact with the VMIN and VTIME set for cbreak mode on terminals connected to the stream. a call using os.read(i_stream.fileno(), 1) resolved this.

- is_a_tty class attribute changed to property. This brevities the
  documentation and interface, certainly enforcing the concept that
  this property is read-only!
- the input stream is *always* stdin.
- helped comment the whys and whats of __init__, about fd's, curses, etc.
- remove list comprehension, fix bug with _keycodes being empty
- only detect input encoding if stream is connected to a tty, otherwise
  it is not necessary to detect encoding of multibyte input, as we can't
  support interactive keyboard input on non-ttys.
- try to cleanup _height_and_width win32 support.
- however; removed the windows getch() and kbhit() until it can be tried ..
- removed the debug prints since inkey appears to work now
- removed the excessive delve into termios, using only tty.setcbreak()
  and restoring original terminal settings in finally: clause