Replace delete in favor of setting to undefined to prevent V8 deoptimization.
Prevent V8 "assignment to parameter in arguments object" deoptimizations.

Some getter-like functions still need fixing, but this might require a fix in Straps.js first.
Docs: Add group title to boolean path operations.
Move Path#getStyle() to better location and simplify code.
Remove hidden unused squared argument in Point#getLength()
Sorting CurveLocation by path index produces the correct sequence in compound paths too.
Use latest Straps.js
Add sorted argument to PathItem#getIntersections()
Remove trailing comma.
Fix accidental documentation leakage into global scope.
Move documentation for PaperScope#tools to the right place.
Execute PaperScript using new Function() rather than eval() and with() {}

This results in some impressive speeding improvements, as modern JS engines are finally able to optimize the resulting code.
Clean up docs and fix spelling mistakes.
Merge branch 'refs/heads/paperscript-refactoring' into v8-optimizations
Change the way PaperScripts are executed in Node.js

Requiring a PaperScript returns an initialize method which receives the Canvas argument.
Update to latest Prepro.js that exposes all globals.
Instead of creating the actual canvas we can also just provide a size.
Improve precision of Numerical.findRoot()
Fix issue in Curve.getLength() for linear curves with sub-ranges.

Closes #376.
Implement options.asString for Item#exportJSON()