CDK-532: Add CharSequenceSet for String/Utf8 comparison.

This adds CharSequences.compare and CharSequences.hashCode that produce
consistent results across concrete types of CharSequences, and a Set
implementation that uses them.

Predicates.in implementations are now updated to detect CharSequences
and use a CharSequence set. Ranges have not yet been fixed, so the to
and from methods in AbstractRefinableView will still round-trip String
and Utf8 values.

In addition, this fixes the serialization round-trip for partition
fields.