Make color gradient allow an arbitrary number of steps.

The old way hard coded 256 steps, but there's no reason for that.
Now it's 256 steps when the gradient is specified by color range, but
with a supplied gradient image it's however many rows the image has.
Fixed color gradient handling.
This has apparently been broken for a while.
Remove unnecessary color quantization for gradients specified by image files.
Added system test for gradient file handling.
Install zlib to add PNG support to PIL
Try again to get zlib installed for PNG support in PIL.
Try to add PNG support to PIL for Python 3
Try smarter to get PNG supported in PIL for Travis tests.
Separate gradient file test and have Travis run it only on python 2.7.
Fix permissions on gradients test.