Added support for a level exit return stack.

A level exit can specify to push a return location onto the player's
return stack.  When the player goes through an exit that does not have a
destination level or entry, the return stack wil be popped and if
anything is present, the player will return to that location.
Fix tabs
Merge branch 'devel' into feature-returnstack

Conflicts:
	smc/src/objects/level_exit.cpp
Remove trailing space
No warning about level entry if not specified.
Fix world editor crash.
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.
Implement saving and loading of return stack.
Clear player return stack when needed.
Fixed spaces to tabs on affected files.
Merge branch 'feature-returnstack' of git://github.com/brianvanderburg2/SMC into devel

Conflicts:
	smc/src/objects/level_exit.hpp
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