ruby-2.0 can't have a mutex inside a trap context

For a simple example see https://bugs.ruby-lang.org/issues/7917.  Trying to take a mutex inside of a trap signal works if you are in a sepaarate Thread, so createa a separate thread for it.  Also, move shutdown to the end of the shutdown! method, since we're spawning a new thread, the trap context won't wait for shutdown! to complete.
Merge pull request #3 from benprew/deadlock-fix-for-ruby-2.0

ruby-2.0 can't have a mutex inside a trap context
Have run! handle shutdown.  Refactor the run! method some.
Merge branch 'deadlock-fix-for-ruby-2.0'
Merge remote-tracking branch 'benprew/master'

Bring in the Ruby 2 fix