add scaffolding for symbol table
test basics of symbol table
implement insert and lookup
start testing scope resolution
pass first round of scope testing
Test exit_scope under 'normal' modes.

For a correct program scope will always be larger than zero when
exit_scope is called. These tests check that the scope level is
correctly decremented.
test value retention on exit_scope

Ensure that the symbol table retains values from lower scopes after exiting scope.
implement exit_scope
test finding scoped values
return correctly scoped variables
test update variable
implement update variable
update version number