Fixed `run` callback to preserve API compatibility

Callback parameters should be `(err, stdout, exitcode)`. The change introduced
by commit 587f600c13f was breaking API and also all unit-tests.

Updated README.md to show the callback parameters.
api,test: configure env for the spawned process

+ fixed unit-tests broken by the recent change of the callback API
Fix incompatibilities with node v0.10

- Wait for 'close' event, not 'exit'

exit occurs when child has exited, but that can be before the parent
process has consumed stdout, as happens when testing `echo hello`, which
exits before the parent has process the queue of expectations

- Listen for 'error' event

Code seems to expect to get notified of command not found through the
shell convention of exiting with 127 when it can't find the command to
exit. This isn't how node works anymore, it uses an error event.

- Tests assumed the err object was second argument to run callback, but
  it is first.

- Tests involving sendfile never complete, vows just hangs, waiting.

Have not tracked down, but I commented the tests out for the short term.
Force node to start interactively even with no tty
nexpect now requires node >= 0.8

It used to claim to support node >= 0.2. I don't know if it supported
0.2, but it definitely didn't support node 0.10. Currently, tests pass
with 0.8 and 0.10, the last two stable releases.
Fix wait tests by having test fixture exit

I don't know why prompt-and-respond doesn't exit when run as a child
process, but does when run at the command line, and I don't care right
now, the tests now pass.
Return exit code, or signal if it was killed
Export API documentation from code to README
Update vows and prompt dependencies

Versions depended on are years old, and both have improved a lot,
vows in particular supports xunit output.
Merge pull request #1 from strongloop/spawn-env

Bring nexpect up-to-date with node v0.8 and later