Fix for issue #2963
Image::resize will now raise a runtime error if the user passes in an invalid width or height.
BboxImage.make_image will now ensure that the width and height it passes to Image::resize are positive or zero.
BboxImage.draw now calculates the bottom left corner of its Bbox, rather than using the "first" corner of its Bbox.