This is just an attempt to fix the type-hinting mess inside the library. This is a BC break, as inheritance may be broken if the child classes do not respect the parent class signature.
Also, I suggest removing all the scanner stuff before merging.
Originally posted by @Ocramius at zendframework/zend-code#123