Cleanup int.jl using parameterized functions

This is a first pass to remove many of the methods in int.jl, as mentioned in #5412.  All tests pass on my 64-bit system, but due to some platform specific definitions, it'd be good to get a 32-bit system to verify that everything works.

While I tried to maintain the status quo and not change functionality, I think that simply changing these functions to be parametric can change their precedence.  I didn't change any of the promotions or conversions -- they proved to be too fragile in the hands of a beginner.  They could still use a cleanup.

Also note that I took care to make these changes orthogonal to #5412; I didn't touch `div` or `mod` so both should be able to merge cleanly together.