Blending

Here we go.
I think this is good, feature-wise - I tried a number of test cases and it works fine (except that mismatch with alpha-less PNGs).

Games don't seem to have broken.

Probably room for improvement and optimization - I'm a bit wary about those pointers, mainly, as it would mean 2x memory accesses (although I think they would probably end up in cache and the pointers themselves steal a cache line at best).

They all compile, no warnings under GCC.