non-square selections

@alexk111 For your consideration, I've made some changes to allow for (non-square) rectangular selections (which I plan on implementing soon, along with some tests).  This mostly involved moving geometry getters/setters away from being center-point centric.  Behavior of current circle and square selections should be identical.

I've also added a property for binding the image data (RGBa pixel array), since we have a need to further process pixels from the crop selection.  The alternative would be to externally convert the existing imageURI back into an RGBa pixel array, which we could live with.