Jobs are now scheduled in the order they are received

The order of job scheduling is now determininstic. When new configs are
received, they are placed in a queue, and workers take jobs from the
front of the queue.
Improved formatting of error handling
Bugfix: any exception caught during cache check invalidates the cache