Add ImageBuf::Iterator::rerange resets an iterator's range on the same image

Add ImageBuf::Iterator::rerange resets an iterator's range on the same image
without having to go through the full construction of a new iterator.

Also changed the value I use for uninitialized position, which was
troublingly 0xffffffff (-1, which is not an unreasonable coordinate
value) to 1<<31, which will definitely never be a valid image
coordinate.