minor refactorings

- rename ExplicitEmulator
- deduplicate binOp code
- obtain trees with source() instead of passing then explicitly
- rename extend(_:Heap) and extend(_:Env)
- add todos for handling reify side-effects
- deduplicate doWhile
- remove gc method
- add FunctionValue select assertion
- deduplicate MethodValue.apply
- fix typos