Decouple Environment from interpreter
Split scoping to separate module
Introduce withNewScope
Add AttributeDict module