Implemented basic stuff for function return type checking.

Right now, it correctly errors out when a function is void, and a return
statement is found within the body of the function (including main).

Added some tests.