Added new test suite, test_compare_images.

This tests the image comparison function itself. Currently, all three cases
fail, due to a buggy comparison algorithm.

In particular, test_image_compare_scrambled shows the algorithm massively
under-computing the error, and test_image_compare_shade_difference shows the
algorithm massively over-computing the error.
Remove the alpha channel from the expected and actual images.

(This regressed when the PIL code was migrated to numpy.)
testing/compare: Fix image comparison RMS calculation.

The previous implementation did not compute the RMS error. It computed the RMS
in the difference of the number of colour components of each value. While this
computes 0 for equal images, it is incorrect in general. In particular, it does
not detect differences in images with the same pixels in different places. It
also cannot distinguish small changes in the colour of a pixel from large ones.
Do not divide RMS by 10000 when testing against tolerance.

This was arbitrary and made no sense. Increased all tolerances by a factor of
10000. Note that some are ridiculously large (e.g., 200 out of 255).
Update the documentation to the 'tol' parameter.
compare: Use np.prod instead of Python reduce.
compare: Use int16 instead of int32 arrays.
compare: Simplify and speed up sum of squares algorithm.
test_compare_images: Added two new test cases, testing a whole-image and sub-image 1-pixel offset.
compare: Use PEP-8 variable names.
test_compare_images: Import nose.tools at the top, instead of in a function.
testing/compare: Remove "retry ignoring pixels with differences of only 1."

This was introduced in 1283feb, presumably to hack around the fact that 1-pixel
differences can make a very large error value. This is not necessary any more,
since the root cause has been fixed."
test_compare_images: Fix errors on Python 2.6 because assert_is_none is not available.