Ensure ProductImage deletion does not delete variations

The `ForeignKey` relation between `ProductVariation` and `ProductImage` and Django's default 'casacde' behaviour means that deleting an object of type `ProductImage` will delete any related variations. I don't think this is desirable in general, and in particular could leave a `Product` without a default variation.