Gamma function (no BigNumber, arbitrary-precision), and updated factorial.

A few things are still in the open:
* The gamma tests fail strangely with a RangeError at line 72. However, when I run the command in a file it works completely fine. I've assumed the others failed test is of the same nature.
* I updated factorial a bit, is it fine? If using that much state isn't good, I can easily remove the memoization.
* I use `new BigNumber(Math.PI + '')` and I want to know how to use `bigPI()` as a replacement.
* The section for BigNumber is a little ugly because of the lack of support for `sin`. After I get the approx to work properly, I will see if the `sin` call is truly necessary.

#226