Int vs float comparisons in Julia

The first commit (a5de252d849cd0da247bf3e3624099a23bf783ae) implements `Int64`/`UInt64` vs `Float32`/`Float64` comparisons in pure Julia, removing the C++ code from src/intrinisics.cpp. From what I can tell, this should emit identical LLVM code as before for `Float64`; for `Float32`, the methods should now work without promotion to `Float64`.

The second commit (62828b7443cf48275888f1c58f9cc07c01a8e931) makes a small modification to fix #9021. Any comparisons with constant integers (e.g. `x > 0`) should now be inlined into a single float comparison. Is there anyway I could craft this into a test?