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).
If the class of the typehint is not known, then there can be no objects that are an instance of it, thus the type check cannot be satisfied. This is also why instanceof does not use autoloading - if the class isn't known it can't be an instance.

Or am I misunderstanding something here? What was the reason behind using the SILENT flag?