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!

Fixes #3
Rename old type name identifiers in the tests.
Make Type embed Expression and use Expression for expressions, not Node.

I also change the unary * operator parsing to return a Star node, not
a UnaryOp. This is because there is an ambiguity between the
dereference expression and a pointer type, which can't be resolved
until we know which identifiers are types and which are not. So, unary
* must be a Type node, in case it's a type instead of an expression.
Since Type embeds Expression, it's an expression too.
Merge pull request #11 from velour/dev/eaburns

Refactor types to be expressions.