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.