Comparable to delegate to other

The Comparable mixin currently depends on `other` also being Comparable.
It did not check that they were of the same class.
It should let `other` decide how comparison should be done with the
value of self._cmpkey().  This is slightly less efficient, but allows
comparision with any object which is comparable with self._cmpkey(),
which includes other objects of the same class as they should both have
the same object type in self._cmpkey().

Change-Id: Id33df6c848479bc3b589a0e282a6a05ca84c22ba
Merge "Comparable to delegate to other"