Implement return types

Works for methods, functions, and closures (all 'function' types).
There are still some issues:
 - Reflection needs reworked
 - Bug where a method declares a return type of the class it is defined
   in and an error is issued that the class can't be found.