Restructured the basic agent structure. Note that I left the
cleintNaiveAgent and the NaiveAgent COMPLETELy intact (only chris
comments are added). This means that both agents do not make use of the
agent interface, nor the new vision methods. This can be altered at a
later time. 

Note that new agents submitted should extend the Agent interface and
should in fact make use of the WorldObjects etc.

The vision is the same vision as before, only the names of the original
methods that return the Rectangle objects are altered, such that the
drawing part of the program can still make use of it. The new methods
return worldObjects and complete lists of structures.