Visitor updates

Composite now extends visitable. My interface names are confusing and
should have been combined so I may fix this if I have time. Warning: I
made all sorts of extra confusing methods and class names since I'm half
asleep. Got quite a bit done though and approaching the stage where I
can finally work on a GUI. Maybe want to debug first though...we'll see.