BuildStep should compute its own type, whether an 1-piercing etc..
Trying to factor out bits of DiagramCreator
  - started by pulling things out into PiercingDrawer and making them as "functional" as possible.
  - from here I'm hoping to be able to see the dataflow more clearly.
Further down the road of making createCircles "functional"
  - now that single and double piercing code is factored out, it is time
    to start adding tests.
More refactoring of DiagramCreator