Additional work to support number interoperation.

This commit continues to try to make the various concrete number
types interoperable. It also adds a BigInt**BigInt operator and
some implicit conversions from whole-number types to Rational.