Fix a sqlcmd regression in the soon-to-die 'go' support, act on related ...

...review feedback.

As I was revising the code according to the review feedback, I noticed that my last changes had made "go" require a semicolon to work.
I tested this patch for unterminated "go" manually. 
There's not much point in adding a unit test since "go" will probably become obsolete before I get a chance to regress it again.

I DID validate that I was wrong about ctrl-D. Nothing I tried exercised this code path, so I removed it.
The decider for me was when I was unable to exercise this code path even in a pseudo-interactive session in the unit test I am working on, achieved by delaying the arrival of streamed input data piped from the test process.
The readLine here seemed to be hanging when I closed the output stream, but never returned null.
I've had to properly terminate the input stream with "\nEXIT;\n".

The null check really only belonged in the non-interactive input loop, where it still provides the only non-error exit from the loop.