Batch process test outcome stats

Calculation of the test outcome stats (streaks and success rate) for
every test outcome is expensive and was starving out calculation of
test run stats.  This changes makes the stats service crunch stats in
batches, takes breaks to let other things be processed.