User:Vgr/Gamestate Design

Currently rough draft of how I intend the GameState design to be:

PregameState should be created on first join. It holds the people who are in, the various join-phase timers, the gamemode votes, and others.

GameState is created on !start, and takes as its only argument the PregameState. It will grab the relevant information from it, then clear it.

This means that the current `var` attributes will be a part of both PregameState and GameState:

- LAST_STATS - LAST_TIME

The following will be moved into PregameState only:

- TIMERS (for the pre-game timers, e.g. game timeout)

The following will be moved into GameState only:

- TIMER (for the in-game timers, e.g. reaper) - ROLES - ROLE_STATS