Implement return types

Works for methods, functions, and closures (all 'function' types).

There needs to be a few more tests for 'parent' functionality, and
ReflectionType needs to implement get_debug_info.
Improve type checking code

The name zval_is_type needs a review; unsure what else to name it.