CDK-177: Adding KeyRangeIterable.

KeyRangeIterable is responsible for building key ranges from Constraints
to use as scan ranges. See tests.

Other changes:
* Add a Pair helper class
* Add equals/hashCode implementation in MarkerComparator
* Add equals/hashCode implementation in ImmutableMarker