[MAESTRO-3320] can block waiting for input from an exited child process

Noted that when running VBoxManage startvm or other commands that start a VM,
the process would exit, but the output file descriptor would be held open by
the virtualbox processes started. Since eof? and readpartial are blocking,
these would not complete until the VM was shutdown, closing the child
virtualbox processes.

In this change, a non-blocking read is used instead, until EOF is
encountered. In instances where it would have blocked, we block for a maximum
of 1 second then try again, ending once the process has exited and there is
no pending output.