Replace puts with Ruby Logger.

With the custom "formatter", this makes messages from Spin easier to
distinguish from test and hook output.
Add 2 layers of SIGINT handling to Spin server.

Changes made:

* If the process receiving the SIGINT is *not* the Spin server process,
the SIGINT is "bubbled up" by exiting.

* If the process receiving the SIGINT *is* the Spin server process, it's
first ignored. If a second SIGINT is received within the time window (5
seconds), the server exits.

The overall effect of these changes is that when Ctrl+C is pressed, the
child process (the test) exits, but leaves the server running.
Fix tests broken in 255f058.
Merge pull request #83 from paperlesspost/2_layers_of_sigint_handling

2 layers of SIGINT handling