Overide delete() on AbstractProductImage.

Ensures the display order is always in consecutive order.

This is a proposed solution to #855