Major reorganisation of reporting sub-packages.

In this release, we throughly re-organized the reporting  sub-packages.
 Here is why we did this.

In the last release, within reporting.base package, we had Format and
TableBuilder.  Format depended on TableBuilder, and TableBuilder in
turn depended on Row and Id.  But we had Row in a different package (we
couldn’t move it to reporting.base package for other reasons).  This
led to an awkward situation — we needed TableBuilder and its key
dependency, Row, in the same package, but they were not.  We fixed this
problem in this release.

Here are the details.
1. We converted Format to an interface;
2. We created another interface called Content;
3. Content extends Format;
4. In View, instead of Format, we have Content;
5. With this design, we have clear code for format & content;
6. We created an abstract class called Document;
7. Document implements Content;
8. We renamed report.formatting package as composition;
9. We renamed reporting.formatting.layout package;
10. The new name is reporting.composition.base;
11. We moved Document within reporting.composition.base;
12. Row, TitledComponent, Id, TableBuilder moved here;
13. We removed render() from Cell and made Cell abstract;
14. We moved Cell to reporting.composition.base;
15. TableBuilder.add() — replaced Component with Cell;
16. Same change made in add call in Document;
17. Removed component() method in Id;
18. Replaced Component with Cell in Id.name(), surname();
19. We created new object TextCell that extends Cell;
20. We placed TextCell in reporting.composition;
21. We moved Table to reporting.composition;
22. We made RowId.component() private;
23. RowId.component() returns NullCell/HeaderCell;
24. Tag.name() and surname() returns TextCell;
25. Renamed XmlFormat to XmlDocument;
26. XmlDocument extends Document;
27. Same thing (25, 26) we did with TextFormat;
28. Replaced Component with Row/Cell in XmlDocument;
29. Did same in TextDocument;
30. Replaced Component with Row in Document;