send extra chars from cursor window to input via global var

In the recent refactor, I made a design decision that it would be great to make `Input` and `CursorAwareWindow` separate objects that can be instantiated and used independently.

The problem is this is abstraction that isn't quite right, because querying for cursor position requires reading on stdin, something input ought to have total control over. This is mostly ok, because `CursorAwareWindow` just ducks in and does blocking read on stdin but if this read happens upon characters that aren't in response to its cursor position query, it's received them instead of `Input`.

Options I thought about included

* `CursorAwareWindow.get_cursor_position` takes an input object as an argument so it can hand over the extra characters
* Use `ungetc` to put the characters back on stdin
* Somehow wrap stdin so it's a smart object that has it's own internal buffer

Currently, we just grab pass in the same stdin to Window and it uses it, raising an exception if it ever finds characters it should be reading. This doesn't happen much because it does a blocking write for the cursor position query and a blocking read to get the characters, reading no more characters after it has a match. The issue is when 

The problem in bpython-curtsies right now is that we check for the terminal size and get the original cursor position before reading