Segment1: improvements and changes to support draw server and correct workings with the other sections
Segment2,Segment3,Segment4: Code from SystemJ moved into these java classes

Classes now interact and reference each other to correctly position all the machines on the factory floor
A new class with a single main method to call all the segment classes in the correct order.

This allows the various segments to interact with one another to gain positioning information about machines that are connected from different segments
Minor changes to DrawCommandList
(and thus FactoryClient because it uses DrawCommandList) to improve clarity
of the addCommand method. No new functionality added, but the method call
is more clear now
Minor improvements to support higher usage by a bigger SystemJ program
Small change to allow variable length queues to be created
Minor changes, mostly commenting