MCO-421 Do signal processing in threads

In ruby 2.0 and onwards it's not permitted to do anything that would
block in a signal handler.  As our control flow doesn't have an
obvious place to process a raised flag, we instead take the approach
of spinning off a new thread to do the processing.

Tested on ruby 2.1.2