Refactor of trig functions and tests

I made a lot of changes in connection with issue #163 and always having `degrees()` and `radians()` do the conversion.  Also since all the "arc" or "inverse" trig functions *return an angle* I am applying the conversion to degrees/radians after the fact and not on the arguments passed into the functions.  I believe this is correct but @kenamarit and @antiboredom, please feel free to check this over!  I also reworked all of the tests and am concerned I may have missed something.