Add metaprogram::is_at_start() function
Implement metaprogram::step_back and add step -n

Memory usage is too high for large metaprograms
Remove precondition in command_step
Improve step_back's memory requirements by using rollback objects
Make mdb_shell's metaprogram instance optional
Merge branch 'step-back'
Reorganize metaprogram frame related code
Use metaprogram::get_target everywhere
Make state_history a stack
Add info about repeatibility into help output
Rework step output in corner cases
Make it possible to build Metashell's Clang without the Templight patch