Issue #84: Unicode support in screen and ANSI.

This commit updates the the screen and ANSI modules to support Unicode
under Python 2.x.  Under Python 3.x, it was already supported because
strings are Unicode by default.  Now, on both Python versions:

- The constructors accept a codec name (defaults to 'latin-1') and a
  scheme for handling encoding/decoding errors (defaults to
  'replace').  The codec may be set to None to inhibit
  encoding/decoding.

- Unicode is now used internally for storing the screen contents.

- Methods that accept input characters will, if passed input of type
  'bytes' (or, under Python 2.x, 'str'), use the specified codec to
  decode the input, otherwise treating it as Unicode.

- Methods that return screen contents now return Unicode, with the
  exception of __str__() under Python 2.x, and __bytes__() in all
  versions of Python, which return the screen contents encoded using
  the specified codec.

These changes are designed to work only with Python 2.6, 2.7, and 3.3
and later, specifically versions that provide both b'' and u'' string
literals.

The check in ANSI for characters being printable is also removed, as
this prevents non-ASCII characters being accepted, which is not
compatible with the goal of adding Unicode support.  This addresses
issue #83.
Rename codec and codec_errors to encoding and encoding_errors respectively.
Disable Python 3.2 builds in Travis as changes only support 2.6, 2.7 and 3.3+.
Don't define __bytes__(), and don't define __unicode__() on Python 3.

The previous attempt to add unicode support tried to make Python 2 and
3 behave in the same way apart from __str__().  This commit makes the
modules, and the tests, provide only __str__() on Python 3 and both
__str__() and __unicode__() on Python 2.
Change SPACE to be a unicode string.
Fix problems found in review.
Address review comments regarding referring to "unicode strings" in docstrings.
Some changes based on reviewing the code
Closes issue #86 and issue #100

Fallback to using stdout, and, when both stdin
and stdout are *both* closed, catch ValueError
and use the same constants as when the attached
process is not a terminal.
Merge pull request #99 from takluyver/issue-84

Unicode support for screen and ANSI
add to changelog
Merge pull request #109 from pexpect/issue-86-and-100-stdin-closed

Closes issue #86 and issue #100
enable echo deactivation in pxssh

I've learned from #112 that you can deactivate echoing of the input via
constructer parameter. This patch enables pxssh to do the same.

In spawn there is an alternative to the constructor parameter, which is
`set_echo(False)`. Sadly that doesn't work, at least in my experiments with
localhost.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
Merge pull request #114 from erikb85/master

enable echo deactivation in pxssh
Initial stab at asyncio integration
Refactor expect code
Expose async as parameter for expect
Fix EOF in async on Linux
support timeout in async expect
Expand tests for async expect