Merge pull request #8 from velour/dev/eaburns

Statement parsing
Return types from the expression parser.

Fixes #10
Fixes #9
Remove TypeName nodes, use Selector and Identifier instead.

This also exposed the ambiguity with composite literals inside of the
initialization of if, for, and switch statements. After some despair,
I took a look at how it was done by the Go standard library parser.
They coutn expression nesting levels and disallow composite literals
on negative levels. Then, if, switch, and for set the level to -1
around their initial statements. Now we do this too!
Rename old type name identifiers in the tests.