Refactor types to be expressions.

This fixes a few big bugs. I had to change things around a lot. Types are now returned by the expression parser. This also means that I had to add handling for composite literals in the initialization of if, switch, and for loop statements.