Get rid of double-delete bug

Image::unload used to be unusable, because inevitably the wrapped dib would be double-deleted in Image::~Image, for example as the garbage collector runs.

This patch set fixes this bug by making sure to set the internally stored dib value to NULL as soon as it is deleted in Image::unload.