Modularize cropping logic

Separating the view from the cropping logic allows to programmatically crop images and create non-destructive editing tools (e.g. filters + cropping) by reusing zoomedCropRect and rotation values.