Typedef handled.

Arbitrary IDENTs are allowed to replace primitive types in the grammar. These are
not resolved to IDENT / TYPE at parse-time, instead either token is passed through.
When the Type object is build the IDENT is stored as a typedef'd name for later
resolution. In a compiler that is the point that error-detection / symbol-table
building would be performed although we have the luxury of assuming that input
programs are valid C to start with.