Add details to "no data from child..."

Improve the error reported when there are not enough lines in the
child process output.
 - use assert.AssertionError instead of plain Error
 - fill actual and expected properties
 - include the description of items remaining in the queue
Add `spawn.sendEof` to close the stdin pipe

`spawn.sendEof` allows users to close child's process stdin stream
and let it know there are no more data coming.

This change enables testing of apps that are using inquirer,
as `inquirer.prompt()` calls `stdin.resume()` at some point,
which causes the app to block on input when the input stream is a pipe.