Creates an object interface around a group of files.

This allows for encapsulating all the functions that iterate over
a set of files / rates, instead of having triple FOR loops in many
places.
Oh, so you use list_of_rates to cache the information. Why not build this in AddFilesAndRates and throw away one of the rate members?