See extended description

1. eval() and repl() parameterized to drive garbage collection
2. Code cleanup - removed unused variables; moved declarations to top of
code blocks in main.c and vm.c (part of conformance to splint)
3. If expressions are evaluated by selection in workspace, should not
emit newline
4. Suppress printing of top two frames in debugger window if in
exception (as opposed to user-created break)
5. New function pin_globals() to protect objects during GC