std.numeric: clean import & CustomFloat printing fix

Blocker for #2728 
1. `CustomFloat ` can be used without printing it. So `template toString()` is useful to do not import `std.format`.
2. `void toString()(scop ...` compiles and  `void toString(scop ...` *not* compiles with unittests! I don't know why.