Fixed 2 design issues.

In this release, we fixed 2 design issues:

1. In last design, we passed around Exporter  between Level and
Component objects (i.e., Bom and BomPart) without invoking Exporter
methods — a bad smell.

To solve the problem, we made Level an instance variable of Exporter.
Level now is mutable and changes its value when it enters and leaves a
Bom.  With this design, Bom and BomPart call Exporter methods, thus
eliminating the problem of “long chain of parameter passing.”

2. Bom used to dump its components to Exporter for export.  This
exposed too much of Bom.  In this design, instead of a dump, Bom loops
through its components and export them.