accurate sind, cosd functions

This improves the accuracy of `sind` and `cosd` for `Real` types by using range reduction and splitting the multiplication by `pi/180` into two terms. As a result, we now have `sind(30) == 0.5` and `sind(180) == 0.0`.

* For `BigFloat`s, only range reduction is used, so `sind(big(30))` is still (slightly) off. I don't know enough about MPFR, but it might be possible to use the split multiplication approach here as well.
* `tand(x)` is defined as `sind(x)/cosd(x)`: this gives the correct result for `tand(45)`, and rounds correctly for `tand(60)`. It also means that `tand(90) == Inf` and `tand(270) == -Inf`: I'm not sure what the correct answer is here, but these happen to be what matlab returns. It also means that `tand(180) = -0.0`, which is less important, but again, may not be "correct".
* Unfortunately, the same trick doesn't work as well for inverse functions, so we still get `asind(0.5) == 30.000000000000004`.
* The same tricks could also be used to improve `sinc`, via a `sinpi` function: however as the issue here is really only integer values, we could also just define it to be:

```julia
sinc(x::Number) = x==0 ? one(x)  : (isinteger(x) ? zero(x) : (pix=pi*x; oftype(x,sin(pix)/pix)))
```