Optimize temporary data allocation during gif encoding

Use a zero-sized array at the end of the struct to store the pixel
data. This reduces allocations and frees to just one for any image
rather than N+1 for N frames.
Disable dithering when quantizing for gif encoding

Reduces processing time by ~50% and the results are almost the same
Fix char to quantum conversion in IM
Add support for pixel manipulation methods