mp_integer: simplify the arithmetic and logical operators to use the same logic
as real and rational for template metaprogramming.

This allows us to get rid of a bunch of redundant type programming and simplifies
function signatures.