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.
Move unloading after exit from game core to level.
Expose level exit return stack features to scripting API, as promised in #88.
Merge branch 'feature-unload-after-exit' of git://github.com/brianvanderburg2/SMC into devel