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

- Int won't overflow
- Will also work for rationals.
add special cases to BatNum.of_float

- handle nan and pos./neg. infinities
- add appropriate test cases.
Merge pull request #339 from madroach/master

improved Num.of_float