merge upstream
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Fix: #initialize() to correctly convert #getValue() array back to Curve object.
  Handle allowNull correctly again in SVGImport.
  Simplify SVGImport attribute parsing and correctly handle failing tests with invalid coordinates.
  Further refine Node.js integration.
  Improve the Node version of Base.isPlainObject()
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Remove Item#applyMatrix boolean, go back to previous way of directly applying transformations to children in Group and Layer, and introduce new Clip class for non-transformed nested matrices.
  Make sure the Base class is exposed in Node.js
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js: (90 commits)
  Start merging fat-line clipping code into Curve class.
  Fix white-spaces.
  Merge handling of flat curves.
  More getConvexHull() clean up.
  Remove unused variable dqmin.
  Further clean up clipFatLine()
  Some clean up in clipFatLine()
  Merge the two convergence checks to one.
  Simplify convergence checks.
  Rename p\d to part\d
  Rename v\dt to range\d
  Simplify handling of ranges and curve parts.
  Switch to using arrays rather than objects for parameter ranges.
  Reverse logic of v1t / _v1t naming and switch to using Numerical constants.
  Re-implement Curve.getLocation2() as "hub" for all the different intersection methods.
  Use break; instead of return; and untangle unnecessarily nested conditionals.
  Define private addLocation() to reduce code redundancy.
  Correctly handle calculation of CurveLocation point in getCurveIntersections().
  Move Curve.getIntersection2 to private function and better name other private functions.
  Always use parameter in getCurveLineIntersection() by flipping curve1 / 2 values as well.
  ...
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js: (56 commits)
  Fix regressions in Raster caused by faulty merge.
  Store data in _data rather than on the image itself.
  Clean up @trankek's fix for node a bit.
  Explain compact = true in Project#_serialize()
  Properly fix issue with Project#exportJSON() creating separate projects on import.
  Update straps.js to version 1.1.0
  Rename options.server to options.node
  Remove all create() constructors for basic types since new constructors are now faster.
  Make sure project we import into is active.
  Unbox project data in Project#importJSON(), as we don't want to create a new project object.
  Remove need for _needsRedraw() calls by replacing it with a boolean flag.
  Apply "pending" matrix in group when it receives content.
  Move main Item insertion code from #insertChild() to #insertChildren().
  Fix documentation warning.
  Handle exporting of Numerical and PaperScript in export.js
  Update straps.js to latest version.
  Accessors cannot define the writable property.
  Properly export Numerical and PaperScript again.
  Only reset matrices in Groups when it could actually be applied to the content.
  Set options.stats = false for build.sh and Node.js
  ...
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Bump version number to 0.9.1
  Fix issue with local paper variable shielding global one.
  Reset transformation matrix when blitting off-screen canvas.
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Explicitly use bash to avoid build problems on linux.
  Bump version number to 0.9.2
  Fix exporting of Base, Numerical and PaperScript into PaperScope.
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Include the minified version of the library in the distribution.
Use parameter on both curves in CurveLocation objects instead of Point in #getIntersection()
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Minor code clean ups.
  Properly fix exporting of classes into Base.exports.
  Switch to HTML5 meta charset tags.
  Fix issues with uglifyjs.
  Include stats.js in distribution so all examples can work.
Merge branch 'master' of https://github.com/paperjs/paper.js

* 'master' of https://github.com/paperjs/paper.js:
  Fix regression in importing SVG viewBox.
Merge branch 'master' into fatline

* master:
  Fix regression in importing SVG viewBox.
  Minor code clean ups.
  Properly fix exporting of classes into Base.exports.
  Switch to HTML5 meta charset tags.
  Fix issues with uglifyjs.
  Include stats.js in distribution so all examples can work.
Remove invalid code and unnecessary comments
Include two new fail-cases for fat-line code.
Clean-up @hkrish's changes a bit.
Optimize SVG import for clipped groups.
Update to latest version of QUnit and install jsDump parser for Base objects.
Fix empty tests.
Clean up jsDump modifications a bit.
Define failing test for wrongly merged group fillColor.