String#<=> handle cases for non-string arguments in 2.0

Handle cases where the other argument is not a string and responds to to_str method or the <=> method or both