Pypy performance

* C level changes to improve performance on Image.putdata and Image.point, buy using non-range checked versions of the sequence iterators. We're checking the sequence length, so this should be safe. 

* Need additional tests to make sure that the changes to the various versions of the loops in getarray and putdata are returning the right sorts of data -- There are i32, F, and double casts in there that are probably not checked. Note that test coverage for C is unknown. 

Fixes #484, #820