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 use variable name ``match`` instead of ``m`` (this is a pylint thing, variables should be at least 3 letters)