Separate out the GameType and GameController

Make GameType purely a marker trait to allow the routes and such to pass
games to each other. Create GameController as an adapter between the
game view definitions and the game room.