Fix Keyboard's use of xrange -> range for python3...

This belayed the fact that Issue #11 was partly do with not actually
attaching any input handling to the event loop (connect_read_pipe returns a
coroutine generator, not a task, so it never got scheduled on the loop).
Fix input...

It seems that between the version of tulip that I was playing with some
time ago and the current asyncio module, one can no longer add stdin as a
pipe to the event loop, but that the file reports read-readiness correctly.

So, this fix puts stdin in non-blocking mode and hooks up a callback to do
handle input.

Closes #11