Added basic state management

Transitioned GameManager to be a state management system
Added basic state functionality to BasicGameState
Simplified sprite-adding system. The previously written way was too
convoluted.
Added custom errors.