Performance/CoffeeScript

Increase performance by using cached canvas objects to pre-render Shapes.
Also, re-write the library in CoffeeScript.