Change generic signature of OrderingComparison to accept Comparable<? super T>

Currently to use `OrderingComparison` with classes which extend other comparable classes (or in general, classes which are comparable to one of their supertypes), the argument needs to be explicitly cast to the supertype, e.g.

    ConcreteType myObj1, myObj2;
    assertThat(myObj1, greaterThan((AbstractType)myObj2);

This patch changes the generic signature of `OrderingComparison` to accept `T extends Comparable<? super T>`, which should be compatible with existing uses but also allow more valid cases to compile.