Added tests for all functions that have higher precision versions, found some possible errors.
Fixed decimal factorial by adding the mathematical definition that 0! = 1
Fixed regular factorial to make sure overflowing numbers result in NaN
Hopefully fixed decimal sqrt, added case for 0 (not sure if that is correct but seems to work fine), and added case so the sqrt of a negative number is NaN.
Hopefully fixed decimal sin and cos functions. Sometimes a taylor expansion would overflow/underflow the NSDecimal and result in NaN, so made sure we only use the tailor expansion result if it succeeded in adding precision. This seems weird since the sin and cos taylor expansions never goes towards infinity, but just adds more fraction digits within [-1,1], but I guess adding more fractions than a NSDecimal can contain is considered NSCalculationOverflow and not NSCalculationLossOfPrecision. There might be more places where this becomes a problem, since we never know when the number of fraction digits might exceed NSDecimal’s limit, and the result becomes NAN instead of gracefully losing precision, perhaps it helps to NSDecimalNormalize() or NSDecimalCompact() before? If not we might have to wrap all NSDecimal functions and check if the operation overflowed and became NaN because of too many fraction digits, or an actual overflow. And just skip the function if it was the former.
Changed so the decimal factorial function uses the decimal function instead of doing its own thing, might be a mistake, or intentional for some reason?
Changed so all sanity check tests run