Fixed crash on server exit

There is still a low-repro crash in here. Some kind of timing issue
maybe.

-Added CancelOutputRead() and CancelErrorRead() to the server start
sequence.
-Added BeginErrorReadLine() and BeginOutputReadLine() to the server
start sequence
- Revamped the server exit catch to be better

fixes #19