Page and Link: use 'rich' comparison

Py3 killed __cmp__, so we have to use the rich comparison operators
(__eq__, __ne__, etc.). To prevent having to define all six of them,
we use the ComparableMixin from [1] instead. Comparison is then
done using the tuple returned from self._cmpkey().

[1] http://python3porting.com/preparing.html

Change-Id: I2fa2b7322769beace6d3d42ca533943fe2b4c82b
Merge "Page and Link: use 'rich' comparison"