First take on cursor position

This is an in-progress PR so there's something to talk about while I make progress. Things I can think of to worry about:

* How should this be tested?
* Anything different to do for signals received during this blocking call?
* https://github.com/erikrose/blessings/issues/65 says Sun needs to be treated differently, and that this won't work in Windows. What's the right way to detect these situations?

I'll keep working on these but would appreciate thoughts.
Please provide argument ``timeout=5`` and honor it.

Please return the (invalid) value of (0,0) if:
- self.keyboard_fd is None
- HAS_TTY is False
- or a response is not received within timeout

and document as such.

This is so that programs that use it (like the proposed bin/resize.py) may work even if stdin is not a tty.