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.
CDK-532: Replace Range with CharSequence version.

This adds a minimal Range API almost identical to the parts of guava
that are used, but that is more flexible with endpoints and allows a
CharSequence implementation.
CDK-532: Remove DataModelUtil round trip method.

Predicates now work with CharSequences correctly, so there is no need to
round-trip values to coerce between string types.
CDK-532: Remove primitive compare methods for java6.
CDK-532: Add tests for CharSequences.
CDK-532: Add Range tests for Comparable, CharSequence.