A composite of many visitors. Any call to a method from Visitor
will invoke each visitor in turn, and reverse the invocation
order on a closing visit.
i.e.
with the list of visitors = [a,b,c]
composite.visitDefault() would...
call on the opening visit - a.visitDefault() then b.visitDefault() then c.visitDefault()
call on the closing visit - c.visitDefault() then b.visitDefault() then a.visitDefault()