Added const qualifiers.
Added nodes and initial functions to support UDTs.

This is not complete.
Formatting.
Identifier nodes are now not expressions.

This is still very messy and a WIP.
Check whether an identifier is a type or not.
Named nodes in scopes can now store any type of node. (e.g. Types, Vars)
Type definitions should hopefully be resolved now.