mp_rational: fix problem when using move semantics.

The moved-from mp_rational was left in an unspecified state that, in certain
cases, could be invalid. E.g., zero denominator when the moved-from int
is a GMP one. Now we force the denominator to 1 in the moved-from object,
so it should be valid and canonical regardless of what there is in the denominator.