Split up the game map logic and game types into separate files

This also fixes #48.
why?