Boolean Operations.

This is probably a crude integration. Need to resolve some issues,
such as finding the right place for constants, private classes etc.
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Define CurveLocation#intersection as a way to retrieve the CurveLocation on the intersecting path when using Path#getIntersections().

ý5ý`qkb:q
Fix: Update the getIntersections method signature in recursive calls
Updated boolean operation methods.

The algorithm is based on paperjs' native segment and curve objects
rather than the generic Node and Link objects.
Also this is much smaller and faster! :)
Merge upstream
Merge upstream
Merge branch 'master' of https://github.com/hkrish/paper.js

* 'master' of https://github.com/hkrish/paper.js:

ý5q:q:qq:q:q
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Undo recent change to Curve#getIntersection() since it breaks some boolean operations.

ý5:q
Merge pull request #211 from hkrish/master

Merge in the possibly smallest Boolean Operations code ever written = )