Major design change to eliminate duplication.

In the previous design, one issue was duplication.  That is, in
TestTiming, we have methods exportBySize() and exportByMethod().  And
we had the exact parallel methods in Format, called addBySize() and
addByMethod().  This duplication was hard to remove.  Finally, in this
design we did it — using objects, of course.

To solve this problem, I substituted the primitive fields —size,
timing, method — in TestTiming with Size, Timing, and Name objects.
TestTiming simply calls Format.add(), passing an ordered array of these
fields.  The field objects, based on their type, will call the right
setter methods in Format.  This helped eliminate the duplicate parallel
methods in Format.

The changes in the files listed here are mainly related to this key
change mentioned just above.

This design still needs a lot of clean up, though.