Refactor ast node creation methods.
Split var/val declarations into unique AST nodes.
Add explicit name/annotation to ast node struct.