Parse a number using the new scientific parser

The old rational parser applied realToFrac (fromRational . toRational)
to the Scientific number to construct a new Scientific number. This had
the disadvantage that scientific numbers with big exponents like
1e1000000000 are converted from (Scientific 1 1000000000) to
(Scientific (1*10^1000000000) 0). If the Integer coefficient of the
latter is later evaluated it will allocate all memory.

This is the first step needed to fix #198.
Fix #198 for Integral types. Fractional types are still unsafe!

Integral types can now be parsed safely (bounded space usage).

Parsing fractional types (Float and Double) still allows an attacker to
fill up the memory of the target system by supplying a number with a
large exponent. Fixing this is on my TODO list.