Implemented a version of taylor_exp() that first does a pass
where we keep track of x^n and n! and find out when their contribution
falls below 0.001, and then in reverse adds up the contributions.

This does much, much better, essentially proving the theory about
floating point rounding errors. However, since we now keep track
of n! instead of the factor we overflow our double which is not ideal.

This also goes for x^n as well.

Further testing: negative numbers and small/fractional ones.
assert that n! is always positive