Testing for AI Classes, cleanup of classes

Removed prints from AI classes, added doxygen, commented and organised
variables in AI and ProgramController, made some ProgramController
methods public for testing.