cat(1) may display ^D\x08\x08 when ^D is used.

This causes various tests, that depend on cat(1) to fail on Mac OSX 10.8.5. These changes ensure that if ^D\x08\x08 ('^D', followed by '\b\b') is found, it is removed.
doc brevity and clean-up

take a byte out of i/o crime.
2 unicode fixes + some docfix lang brevity

interact() method failed, which attempted to write raw bytes:

  >>> sys.stdout.write(b'')
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  TypeError: must be str, not bytes

this is resolved in class spawn, by encoding as 'ascii'.

A much more serious looping test failed, where val == '', and val is b''

  >>> b'' == ''
  False

Also included is some docfix language
avoid executing code in main module space
remove unused imports, test return values of send
remove unused module (sys)
add unicode test and force str() type in python3

sendline('xyz') in python3 will send unicode, what is expected of the spawn interface is raw bytes. The proper procedure should be to use sendline(b'xyz').

The interact() method of spawnu() is also tested to ensure unicode is accepted (hamsterface!)