Add String#<=> spec for encoding-agnostic behavior
First compare byte-wise, then encoding-wise
Merge pull request #2385 from ryoqun/encoding-agnostic-compare

String#<=> should first compare byte-wise, then encoding-wise