Major design change of output objects.

In this release, we completely overalled the design of objects involved
in output.  Here is the gist.

First of all, we moved away from the previous metaphor of a document as
made up of nodes.  Instead, we stuck to the metaphor of a document as
rows of content.  Each row is made of one or more cells; each cell
holds text content.  This model leads to a composite.

The next big conceptual difficulty we have been having with previous
designs involved adding contents to a table — the API was unclear.  In
this design, we improved the API with the notion of Id.  Ids identify
every column and row of a table.  So to add a cell to the table, we
specify the column Id, row Id, and the cell itself.  This makes things
clear.

Row objects take Id in their constructor.  The default constructor
creates a null Id.

The TableBuilder nicely cleans up with this design using Id, Row, and
Cell objects.  This is a major improvement.

These changes also meant that we had to modify Format and its
sub-classes to align with these new ideas.

Finally, in this release, we also improved on one thing that has been
bothering us for a while — how to create the TestInstance object, and
where, and by whom.  Here, TimingTests creates TestInstance.  We
designed a new Method object that takes a java.lang.reflect.Method in
its constructor.  TestInstance takes Size and this Method object in its
constructor.  With this design, TimingTests can create TestInstance
without violating the Law of Demeter —  i.e.,  “one-dot-per-line.”

We will clean up more in later refactoring.