levels are persistant

*made levels persistant
*added on_scope_exit
*added make_iterable
*added "mobs" that currently do nothing
*cleaned up some algorithm calls to use the container version
*changed a few lambdas to use c++14 auto systax