Refactored the game state machine to use derived gamestate classes. Each class implements virtual methods in chuchu::game_state which allow each gamestate to manage its own event handling, game logic update and draw implementations. Implemented an intro gamestate using this new method.