Use GameState objects in place of a Board and Players throughout system
Refactor HardAI to use GameState objects throughout; minor tweaks