angle calculution for rotate should use the jsnums library. This fixes rotation for non-integer angles, but the same problem exists for other primitives (triangle/sas et al))
switch our triangle implementation over to follow Pyret's, which fixes some bugs and will likely be maintained in the future
udpate jsnumbers with Dan King's patch
scale arguments should be non-negative reals