Prevent multiple test processes from running.

This fixes a bug where if Ctrl+\ (SIGQUIT) was pressed multiple times,
multiple test processes were spawned.

Other changes:

* Fix bug where if Ctrl+\ was pressed before first tests pushed, "You
have a nil object when you didn't expect it!" exception was raised
* Add notification when Spin server is ready
* Consolidate duplicate Process.wait calls into one location
(Spin.fork_and_run)