[Fix #133] Make consistent use of byte strings

We take data from the system, and give it back to the same system, so
don't let encoding and true strings get in our way.  Just bytes in,
bytes out.

On Python 3, we have to explicit pick the byte-string environment,
because putting byte strings into the string environment causes an
exception.