times (such as crop, scale, then desaturate) without quality loss, we need to
pass images by their raw GD (or other library) resources rather than re-opening
the same image repeatedly, which causes wasted processing and loss of quality when
using JPEG images. This patch reworks the image toolkits, adds some new image
manipulations and adds some impressive SimpleTests.