Issue #44: Solaris support

* Fix various issues related to SunOS (SmartOS).  A new keyword argument has
  been included, ``echo=True`` by default, for the ``spawn()`` constructor.
  On SRV4 systems, the master process may not use ``setecho()``, ``getecho()``,
  ``getwinsize()``, ``setwinsize()`` or ``waitnoecho()``, because the master_fd
  side of the pty-pair does not appear as a terminal (``isatty()`` returns
  False) (issue #44).

Also resolves a few failing tests for cygwin and other testing improvements, see commit messages.

All tests pass MacOS, Cygwin, and Solaris.

cygwin
---------
```
CYGWIN_NT-6.1  1.7.30(0.272/5/3) 2014-05-23 10:36 x86_64 Cygwin
```
```
Python 2.7.5 (default, Oct  2 2013, 22:34:09)
[GCC 4.8.1] on cygwin
Ran 121 tests in 261.851s
OK
```
```
Python 3.2.5 (default, Oct  2 2013, 22:58:11)
[GCC 4.8.1] on cygwin
Ran 121 tests in 292.297s
OK
```

SmartOs
-----------
```
SunOS 00-0c-29-e7-65-bd 5.11 joyent_20140515T211957Z i86pc i386 i86pc
```

```
Python 2.7.5 (default, Apr  8 2014, 13:54:46)
[GCC 4.7.3] on sunos5
Ran 121 tests in 148.559s
OK (skipped=6)
```

```
Python 3.3.2 (default, Apr  8 2014, 14:01:10)
[GCC 4.7.3] on sunos5
Ran 121 tests in 132.874s
OK (skipped=6)
```

MacOs
---------
```
ProductName:    Mac OS X
ProductVersion: 10.8.5
BuildVersion:   12F45
```

```
Python 2.7.5 (default, Oct 12 2013, 14:48:07)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.76)] on darwin
Ran 121 tests in 123.139s
OK
```

```
Python 3.4.1 (default, May 19 2014, 13:08:55)
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Ran 121 tests in 123.127s
OK
```