Fix interaction of float type derivation and negative zeros.
Claiming it is good for optimizers type deriviation converted types
like (double-float -0d0 -0d0) into (double-float -0d0 0d0) before
derivation, and then (-0d0 0d0) "back" into (0d0 0d0). The original
type becomes lost and can lead to wrong results. It's not clear which
optimizers benefit from this, but if it produces wrong results then
it's not worth it.
Remove the convert-numeric-type and convert-back-numeric-type
functions.
Reported by Akshay Srinivasan.