Expression parser has an environment of variables

New variables are added to the environment when created; variables
already in the environment are reused. Every call to Expression.parse()
now provides an environment, which usually starts empty and is quickly
garbage-collected. The MainWindow has a persistent environment to be
shared between all statements. Use of this environment is not fully
implemented, and finishing it will require a lot of careful thought on
the ontology of statements, expressions, and variables.