Fix SDL color encoding

Little-endian + RGBA means that red is located at the lowest-order bits, not the highest. I ran most of the SDL tests which seemed to use the canvas as output and got them to pass.

I also added a new test and made a couple of tweaks to existing tests to increase portability, reduce compile-time warnings, and reduce noisy log messages.