Do implicit cast for ExpInitializers inside CTFE

Move the implicit cast inside CTFE, so that we're evaluating the
final value.
Fix bug 9937 CTFE floats don't overflow correctly

This fixes the bug in comment 4 of bug 9937.
Although CTFE floats may use higher precision than is available on the target
machine, it is impossible for that extra precision to survive to runtime.
This commit forces the extra bits to be discarded at the end of CTFE, rather
than in the glue layer. This eliminates the bizarre anomalies in bug 9937 where
a variable has two values at the same time (!) It also opens the way for CTFE
to calculate with much higher precision than is available at runtime.