Implement integer promotion for urem, udiv, srem, and sdiv

The optimizer sometimes thinks it's beneficial to truncate all manner of
i64 operators to narrower types, even when still wider than the platform's
widest legal type.