refactored primitive types to have const constructors, and Address to be
a subtype of Value (common superclass for primitive and reference
types). Added more type security to environment. fixed lookup to return
Value.