Force internals to compare user submitted numbers with a bignum.

Without this, users can happily simply return 2 ** 64 from 'total'
 and have the test falsely "OK" it, because without bignum,

 ( 2 ** 64 ) == ( ( 2 ** 64 ) - 1 )

Misc styleistic changes also.