Synchronize logging
The switch to parallel for loop started causing overloap between writes to standard out. This patch adds a worker thread that handles the logging output of each result and then outputs a summary after the main thread tells this worker thread that it's done with all the tests