Handle GIF with zero width without crashing.
GIF library: Declare image dimensions as unsigneds.

Not uint16_ts. Why? Because uint16_t promotes to int. So imagine
an image with "size" 49020x63995. This should produce an image
data array of size 3137034900. Which it does with unsigned numbers
for the dimensions. But uint16_t promotes to int, and 32-bitwise,
that size is negative.