Refactoring, only install signal handlers once
Fix Ruby 2.0 signal handling

Use the self-pipe trick to make the signal handlers safe in Ruby 2.0
Only write to the self-pipe from the server process

Fixes Ctrl-\ re-running the test twice
Remove unnecessary TestProcess code

Now that our SIGINT/SIGQUIT are handled serially, it's impossible for the sigquit_handler method to be called while a previous test is still running.  Therefore, we don't need to keep track of the child process's pid, and can remove the TestProcess class.
Fix bug where SIGINT would not exit test.

Now that signals are handled by a self-pipe queue (ef645ca), the changes
made in 7a3c665 (2 layers of SIGINT handling) make less sense. This
commit introduces new SIGINT handling behavior: if a test is running,
the test is exited. Otherwise, the server is exited.

Other changes:

1. Move messages written to/read from queue into constants.

2. Add a "ready" state to indicate whether or not the server is ready
for new tests or commands.

3. Reconnect signal traps to signal "handler" methods.
Merge pull request #85 from jdelStrother/signal-handlers

Signal handlers