Generate pretty JSON in the queue config view
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