add tests using in-memory terminal
fix tests a bit
add temp fix for dealing bpython bug

In the future - probably make fmtstrs only possible with unicode?
Api would be a bit annoying in Python 2 though. Maybe the moment
it comes in, decode the bytes as the terminal is encoded? But they
could be being used in code, in which case we want to know the
encoding of the source file, or the encoding of the bytes from
wherever they came from.