Add ExplicitNames support. Fixes #93.

@feuerbach: you should probably review this change set since you suggested the design in #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.