Implement return types

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