fix rounding of floats big enough to be bignums
Wow, so broken: the attempt to confuse while pretending to do
round-to-even goes back decades to original CMUCL sources. Rewrite
the bignum branch with a more careful and clear version that is obviously
correct.
Optimizers might want to elide some of the computation on appropriate
platforms: on 32-bit platforms, all single floats outside the fixnum
range are integral, while on 64-bit platforms all single and double floats
outside the fixnum range are integral. (This could be implemented by
comparing most-fooative-fixnum with fooble-float-significand-byte)