Clean up style and clarify return type functions
Fix bug with return types and generators

If you had a `return;` statement in your generator, it would attempt
to typecheck vs the generator return type, which will always fail.
This change skips the empty check for generators and adds a test case
for it.
Make ZEND_VERIFY_RETURN_TYPE a nop in generators

Generators can have return empty return statements, but these are not
violations of the generator return type. Note that it is difficult to
not emit ZEND_VERIFY_RETURN_TYPE inside generators, because you might
not know yet that the function is a generator.