Add imagemagick engine

I find the diffs imagemagick produces much easier to work with.

See http://stackoverflow.com/questions/5132749/imagemagick-diff-an-image for examples.

This engine behaves a bit differently than the perceptualdiff engine. It leaves the new screenshot around only if there are differences. When there's no differences, an existing differences image from an earlier run is deleted. It also uses cmp at first to quickly skip unchanged screenshots.
I think `RuntimeError` might be more appropriate than the generic `Exception`