- Many changes relating to UI and Bot communication.
FIXED: Bot now shuts down when GUI shuts down.
FIXED: Bot no longer gives an error message when shutting down when the GUI
       is not running.
IMPROVED: 'start' method in bot.py is now divvied out into different methods,
          so that it is cleaner to look at and understand.
IMPROVED: standardized references to "messages" "events" "gui events" (and
          anonymous tuples) to use the same name (Message) in documentation,
          and improved clarity of code.
ADDED: Lots of documentation for Kyle in case he wants to add something to
       the GUI.
ADDED: Hook to handle GUI closing
ADDED: Hook to handle bot closing
ADDED: A set of message names for which only the newest packet matters.
       This is probably going to be the typical case, in which case we can
       discard a good number of messages from the bot.
ADDED: Message() class (extremely lightweight named tuple) for message passing
       (converted existing anonymous tuples to the Message named tuples)