Implement Visitor pattern for Builders

In order to facilitate inspecting the builders, I created a new
IVisitableBuilder interface as well as a BuilderVisitor class.