WIP: fix float vs rational comparisons

This (should) fix `FloatingPoint` vs `Rational` comparisons (mentioned in #2960 and #8411), and should be easily extendable to other binary `Real` types such as [FixedPointNumbers.jl](https://github.com/JeffBezanson/FixedPointNumbers.jl).

However in modifying dispatch of `Real` vs `Real` comparisons, I seem to have broken something: during build I get the error:
```
...
mpfr.jl
hashing2.jl
dSFMT.jl
error during bootstrap: LoadError(at "sysimg.jl" line 184: LoadError(at "dSFMT.jl" line 29: StackOverflowError()))
make[1]: *** [/Users/simon/src/julia/usr/lib/julia/sys0.o] Error 1
make: *** [release] Error 2
```
The line in question is [here](https://github.com/simonbyrne/julia/blob/a859ee813c30bac2b6130446c795de02e4bc7bf5/base/dSFMT.jl#L29): can anyone guess what is happening and/or how to fix it?