Stop a child processes leak.

When the test runner fails, we would not clean up
child processes. So we now ensure to kill the server
after test runs. Also, as threads + IO give us all
the concurrency we need, forking has been replaced
by a thread.

Since we don't fork, we are no longer susceptible  to
orphaned child processes.