Rewrite shutdown signalling, fixes #2056

There's a race condition between sending the shutdown message and waiting for the "shutdown finished" signal to come back.  Instead use a shared CondVar which is not racy.
Merge pull request #2056 from mperham/0_16

Use Celluloid 0.16