Add details to "non-empty queue on spawn exit"

Improve the error reported when the child process exits before the
whole queue is processed:
 - use assert.AssertionError instead of plain Error
 - fill actual and expected properties
 - include the description of items remaining in the queue
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.
Merge pull request #17 from strongloop/improve-message-on-nonempty-queue

Improve message on nonempty queue + fix child hanging on stdin