Make tests run on Python 2.6
Refactor the output_file_info() function into a set of 3 classes. Refactor support for threads/multiprocesses.
We use a set of classes to output file info. This makes the called code
cleaner and also eliminates ugly checks for number of processors at
random spots in the code, and tracking number of files output, and so
on.
It's a bit messy because I was adding docstrings when I decided to
refactor, but I wanted to get the code committed.