Float{64,32} == Rational: implement exact equality checking [#3102]

This is a fairly insane way to do this, but it works robustly. Even
works for Rational{BigInt}, which I really need to add checks for,
along with all the other functionality.

Temporarily disable some tests in test/numbers.jl until I can sort
out what they ought to check, if anything.
simpler transitive Float == Rational equality implementation [#3102].
re-enable all tests in numbers (with slight modification).
add some tests for new float-rational comparisons.
Merge pull request #3110 from JuliaLang/sk/float-rational-cmp

transitive comparison of floats and rationals