Update arc.js

Corrected arcs drawing and extended caching logic to have a chache hit more often.
Function is more or less 20 lines of code shorter, but i really cannot figure out if this implementation has more calculation
than the previous. I couldn't manage to find the error in the old one, i had to overwrite it.

in the picture , the multi colored arcs, are all on cache it after calculating the red one.
It will happen rarely, but why miss it?

![image](https://cloud.githubusercontent.com/assets/1194048/3872383/112e58b6-2119-11e4-839a-9e8e21507495.png)