Issue 8807 - Better diagnostic for literals in case statements.

http://d.puremagic.com/issues/show_bug.cgi?id=8807

This will print float literals as floating-point instead of rounding them down to integrals, which confuses the user.

Also, `exp = new IntegerExp(0);` was changed to `exp = new ErrorExp();`, otherwise multiple errors in switch statements would introduce multiple `switch 0:` cases and this would error about duplicate case statements.