#36 Commands that take input (such as `cmd.exe`) now terminate properly.

The problem was that I had no good way to determine if a running process
ended or not. Previously, I would test the process's input stream,
writer. This approached failed because the write stream would only
report failure *after* a failed write; in other words, the end user
would have to type an extra command just so the process could realize
that it terminated.

I changed the approach to use the Process#exitCode() method. This method
throws an exception if the process is still running. I hate to knowingly
provoking an exception, but it is the only consistent way I can think
of. And it works.