Making String::compare similar to hash_equals and use native function if available.

This PR makes String::compare more similar to hash_equals (which was introduced in PHP 5.6) in terms of argument order and which kind of arguments (strings only) it accepts. 

The BC break lies within the method now not accepting non-string arguments anymore. Whoever passes non-strings should be warned. IMHO this is the correct and more strict behavior.

The order of arguments only then plays a role if the native function is used.