Added a semantic analyzer

Currently, the semantic analyzer only reorganizes the tree from

(
	symbol
	param1
	param2
	...
)

to

symbol
	param1
	param2
	...

This simplifies the code generator some, and will make the second phase of the
semantic analyzer (the type checking portion) much easier.