Zend-compatibility - strrchr

The contract for `strrchr` is "If needle contains more than one character, only the first is used". The implementation was using `strrpos` which scans for the entire string, not just the first character, resulting in an incompatibility. This PR request resolves that incompatibility.

Also, for the purposes of `strrchr`, zend treats the empty string as a NUL character. This happens because the empty string is (apparently) handled by the second rule for needle: "If needle is not a string, it is converted to an integer and applied as the ordinal value of a character."