Support unloading a level after exit.

When using a return stack, a given sublevel can be used multiple times
in the main level.  This commit add a feature where the level can a
level can be set to unload when it is exited, so that the next time it
is entered, all it's objects will be reloaded and present.  Without
this, entering a sublevel the second time will remain the same as it was
when it was exited the first time.  This is implemented as a level
setting to unload or not to unload.