Merge pull request #63 from jfollas/master

FIxed Stage.toDataURL JPEG issue
added new performance test in preparation for new hit detection algo investigation
prototyping back buffer hit detection algo
checking in first phase of new hit detection algo, which enables high performance event detections even if there are hundreds of thousands of shapes.  This is a giant improvement over the previous algo, and is a fairly big architectural change.  Since the Animation architecture and API is also changing, I feel that these changes are big enough to warrant a new major version, v4.0.0
major refactoring of the event engine to better support new hit detection strategy
Added support for dragBoundFunc where custom dragbounds (or constraints) can be defines.
Using new pos from return instead of by reference.
continued prep work for v4.0.0.  removed detectionType property because new event engine uses one strategy.  added new drawBuffer method so that you can redraw the buffer without redrawing the visible canvas.  changed alpha to opacity.
It's better to applie the custom dragBoundFunc before applying 'normal' dragBounds och dragConstraints so they wont get overridden.
(Forgot to build the dist-versions.)
added support for image hit detection with new color mapping algo
draw methods now draw on both the front and back buffer by default, unless a canvas is passed as an argument.  continued fixing up unit tests.  Image width and height are now synced whenever the image object changes.
refactored ancestor comparison logic to ensure that container handlers aren't incorrectly executed for mouseover mouseout.  Fixed up functional tests
hit detection color mapping now takes into account anti-aliasing color variations, which was causing issues when moving the mouse from one shape into another shape which were inside the same group.  created getIntersections() method which returns an object with shape and pixel data
added drawScene() method which only redraws the scene and not the buffer
new hit detection algo works with images that contain transparent pixels.  Devs will need to use the createImageBuffer() method to create a higher precision buffer image
rewrote intersects method, which now leverages the new getIntersection method.  fixed up unit tests.  also fixed bug with getIntersection method
refactored filtering logic
refactored draw, _draw, and _drawChildren methods in such a way that isVisible and getListening logic resides in one place, therefore improving code quality
mouseover and mouseout events should not fire during drag and drop