Make sendBackward/bringForward work with non-intersecting objects

sendBackward/bringForward functions now take an additional parameter
`intersecting` (boolean).
If `true`, send object behind/in front of next intersecting object.
If `false` (default), send object one level down/up without checking for
intersection.

See issue https://github.com/kangax/fabric.js/issues/707
Merge pull request #732 from Kienz/gradientFix

Bugfix for `fabric.Gradient#fromElement`; add more gradient tests
Merge pull request #734 from sn3p/master

Make `sendBackward` / `bringForward` work with non-intersecting objects
Remove commented out code
Make gradient, pattern, shadow optional modules
Make sure object angle is always positive
Merge remote-tracking branch 'fabric.js/master' into sketch