Return types

This is a pull request to implement the return type RFC: https://wiki.php.net/rfc/returntypehinting

Presently not ready for merge (there are a few bug fixes still needed).
I appreciate the review; I was not really ready but someone had asked me to open the PR so they could help me with a memory issue I was having.

I tried using `zend_compile_class_ref` but I need the return_type AST to call it but don't have it in the return AST, which is where this function is actually called from. This function would emit `ZEND_FETCH_CLASS` if necessary.

Lastly, `parent`  should work (just unimplemented currently) but `static` doesn't work by design, based on the discussion phase. I haven't gone through and verified if `static` would break covariance or not; I need to do that soon.

Thanks for the partial review.