Use child_process.spawn() in place of child_process.exec()

This change allows nixt to interact with a process before it has
terminated.

Because exec() expects an arguments array while spawn() expects a command
string, we need to pull in the `shell-quote` module from npm to ensure
the cmd is safely parsed.
Removes erroneous console.log
Nixt can detect and respond to interactive prompts

Adds the public API methods on() and respond() for matching and
responding to interactive prompts.

See `test/prompt.test.js` for usage examples.

Inspired by https://github.com/jprichardson/node-suppose

Adds the 'string' module as a dependency for prompt matching.
Adds the 'prompt' module as a devDependency for the test fixture.
Adds #on and #respond documentation to the README