use Stdlibs Num.{pred,succ} instead of homebrewn

- Int won't overflow
- Will also work for rationals.
fix BatNum.of_float

- do conversion arithethically, not by parsing strings.
- add appropriate test cases.
Merge pull request #341 from madroach/v1

fix Num.of_float for v1 branch, too