Major changes -- re-designed costs; clear names and responsibilities for classes in base module.

1. In Bom.cost(), re-introduced Cost as collecting parameter;
2. Cleaned up code in Bom.__first_costable();
3. Similar changes in BomPart;
4. Costs -- now two classes -- Cost and UnitCost
5. Cleaned up Part.cost(), UnitCost.cost(),  Quantity.cost()
6. Renamed Format as Builder;
7. Renamed PartBuilder as PartSchema -- BIG DEAL!!!
8. Format.render_part() now Builder.add_part()
9. PartBuilder.build() now PartSchema.part()
10. PartSchema now just orders fields; Builder builds part;
11. Related changes elsewhere.