Avoid loading level twice on LeaveLevel()

Every time we run Gamestate.get() we are actually loading a level again.
In this change we can avoid the need for that call and only load the level
required on Gamestate.switch()

This should make loading subsequent levels at least twice as fast since we
aren't duplicating work any longer.
Check all levels by name rather than comparing the entire table
Assign names to all non-map levels
Merge pull request #2122 from niamu/leave_level

Avoid loading level twice on LeaveLevel()