Accuracy of sinh and complex cos/sin

The `sin` and `cos` function for complex arguments, and the `sinh` function for real arguments, are inaccurate when the inputs are very small. This is because `Math.exp(x) - Math.exp(-x)` returns zero for small x, instead of the more accurate `2x`.

This patch replaces `sinh` by a Taylor expansion when the input is small, which increases accuracy.
This is a tricky situation indeed; on my machine the current test passes. I think there is a hardware issue here: this will pass, or not, depending on whether your copy of Node.js was compiled to use x87 or SSE floating point instructions, and which the JIT decided to use. I'll look for an adequate solution, but I'm a bit stymied without a buggy software / hardware combo. What do you use?