Organized code

No optimization yet, but cleaned up a bunch of the code.  Closed some import loops and tried to organize the functions/objects.  e.g. consolidated all the bots into a single file, and unified all the gui functionality.

The hope is that by compartmentalizing we can work on a small aspect with out worrying about breaking the whole thing.

Let me know if you think the changes went to far.