crop_instance shortcut, which is an easy way for outside apps to generat...

...e crops.

Mostly borrowed from legacy.upgradeduster's implementation.
Is there any functional reason that null widths and null heights return different things? Or really why that's not just a `TypeError`?