Finished adding type hinting to closures/procs.

Also made a few bug fixes with typed assignments. Raw declaration of variables
with no values is now allowed, though the default value is null, this will eventually
be changed to set an undefined flag on the value, and if it is used without being assigned,
it is an error.