refactoring complex numbers

Complex numbers are treated as first-class objects in arithmetic.coffee
refactoring complex numbers

Treated as first-class objects in comparisons
added and corrected some tests

There seems to be a significant diverge between what Math.exp() returns
in a browser and in NodeJS.  I had to fix some tests to make them pass
in browsers.