Re-designed OrderedReport & Order. Clean up.

We completely re-designed OrderedReport and Order.  In the last design,
OrderedReport.sort() returned a Map, exposing its implementation.  This
dependency showed up in clients (e.g., Order).

In this design, we gave two constructors to OrderedReport.  These
constructors define the type of sorting OrderedReport will do.  Order
now invokes the right constructors for size and method reports.

We also cleaned up TableBuilder.  We renamed the instance variables as
columns and rows.  This made the whole design clean.  Also, we
eliminated Id.addTo(Row) method.  In TableBuilder, instead of the
awkward id.addTo(Row), we used Row.add(new TitledComponent(id, new
Row()).

With these changes, we eliminated Row.add(Component[]) and
Table.add(Component[]) as well.

The design looks pretty good now!!