Add ExplicitNames support. Fixes #93.

Patch based on @aavogt's previous patch. Difference is that the 'type' part sits on IVar/EVar as suggested by @feuerbach instead of a new node in the AST.
Add tests for #93.
Replace the Bool on EVar/IVar with a Namespace ADT.