add support for cropped image data (pixel array from canvas's 2D context) in addition to data URI
prepare for non-square selection areas; refactor bounds to use northwest/southeast corner points and width, computing the area center point from those (rather than setting it directly)
finish implementing canvas boundary collision checking; swap draw crop area arguments back to their original order; small whitespace cleanup
allow size of square-like areas (width equals height) to be set with a single numeric size value
simplify square corners/dimensions calculations
first cut of rectangular selections, where each corner can be dragged independently; refactor square to extend rectangle and override its mouse move method; add convenience method for setting selection size by 2 corner points (northwest and southeast)
use canvas/size height properties when preventing dragging outside out height bounds
use actual selection size for size of generated image
allow result image size to be configurable (this was removed in previous commit); this can either be a scalar value for square-like selections, an object containing the width/height dimensions, or the string "selection" to use the dimensions of the current selection; fixes bug property setter bug introduced in a1a700f
fix up type checking in result image size setter
return an object containing null values and do not attempt to get image data when no image is available
simplify boundary collisions between selection and canvas; prevent redraw flicker by performing this check prior to drawing selection, rather than after
correct typo/bug in canvas height check; do not check boundaries when setting minimum size
Merge remote-tracking branch 'upstream/master'
remove calls to method already removed from crop-area class; geometry rules are now enforced by the size setter method
enforce intial 1:1 selection aspect ratio for square & circle selection types, as suggested by @paulflo150 in issue #6
refactor area type checking to use new getter method rather than passing around the type; improvements to suggestion by @paulflo150 in issue #6
* refactor area type getter down to area classes, with a wrapper method in the crop host class
* enforce 1:1 aspect ratio for square-like selections when attemping to drag out of bounds
Expose crop area for client code
Use e.originalEvent.changedTouches for angular compatibility