Make the threads argument optional.
A few changes to get things working with one or more processes

* Allow AccumulateResults to handle an empty input vector
* Pass the end iterator instead of the number of games as the end value for the parallel task run
* Print messages from rank 0 process only