Starting to move the map data part to a separate class.

For now, the map parser directly creates runtime entities on the map.
This will change to allow people to read and write map files without
running a game. Useful for the editor or other external tools.