The Destroy button for running messages works now
Handle SIGCHLD using a self-pipe trick, factor out a child handler method

The previous code would wait until the next loop tick to handle an ungraceful
child exit. This refactoring handles the child exit immediately.
Eliminate JSONConfigFile and only reload queue configs on SIGHUP
Queue logging consistency changes
Remove tail recursion, rely on the main loop
Queue manager refactor to use the same self-pipe and main loop layout as the queue workers
Merge branch 'cancel_retry'
Use method_missing for magic consolidation of protocol methods
Try to consolidate all protocol handling further
Merge branch 'protocol_magic'