Image to use load not getpixel for speed

Image.getpixel is really slow. 

This changes to use Image.load() to give you a fast access copy of the image which you can the access like an array.

This gives about a 4x speed up.

Still not really fast but better. I am sure there is something clever to be done with image.point but I can't quite figure it out right now.