The commit 640abe0c12 implemented rich
comparison methods for the scheduler.Timeout class in order to be
compatible with Python3. However, it left out most of the checks to ensure
that Timeouts are compared only to other timeouts. It also left behind a
completely incorrect implmentation of __cmp__, although it didn't matter
because that is ignored for objects that implement rich comparisons.
This change deletes __cmp__, adds the type checking, and uses
functools.total_ordering to cut down on the amount of boilerplate.
Change-Id: Idf65d41705cefe9dab8ad5a518b142314077086b