v0.93b

Start of gui overhaul. Code is not working as of this commit, serving as
a backup only. GuiState object now serves as a parent and each gui state
is a subclass. All relevant code should reside in the subclass. Binding
subclasses should be general/reusable if possible. GuiState has
create/destroy functions to handle any creation/resetting of controls,
keybindings. GuiState.toggle calls the appropriate function for toggling
the activeness of the GuiState. Moved all gui related code files into
Gui subfolder.