implemented undo/redo for back-step and back-run
added tests for it
clear-env and reset-env now reset goals and back-stack
compose-substitutions checks for empty list
run-tests now prints total test count