Started work on simple.py, an attempt to bypass all this nasty interface coding.

Hit troubles with subprocess and libev stepping on its toes.
Going to switch to gevent.subprocess
Move from subprocess to gevent.subprocess
cleanup
Set stdin to raw mode for input loop
Some stuff for debugging that for stupid reasons I can't fully include here
Fixes
Increase MAX_VOL to 4

This gives us greater software amplification if need be,
at the expense of a nice interface,
ie. with MAX_VOL=4, the default vol is displayed as 25%.
Fix a bug where gevent.subprocess.Popen was making stdin blocking again

This was subtle, and was a bitch to find.
So, when running on a standard terminal, fds 0 and 2 point to the same
file entry. And in Popen, in the child before exec, the new stdin/out/err
have their nonblock flags cleared. And stderr was being passed through.
Hence, it was clearing stderr's nonblock flag, which cleared stdin's.

The workaround here is to redirect stderr to /dev/null.