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 think this whole functions should be looking a lot more like http://lxr.php.net/xref/PHP_TRUNK/Zend/zend_execute.c#524 - in particular many of these allocs aren't really necessary. This function also has a `message` argument that isn't actually use. Probably should be used to avoid the following conditional.