make surfaces look even more like arrays
whoops, weird api -> dropped test
Test more compilers, add asan.

The coverage build was spuriously crashing by reading memory at a bad
pointer.  All other builds, including ASAN, were fine, so I blame GCC
coverage mode.  Clang's seems fine, so switch to that.
Simplify Blend API to always read dst.

Overall runtime for all four compilers is no worse, maybe even better.
Sufficiently smart compilers skipping the load when ignored?  Maybe this
helps Over at expense of Source?  Anyway, if it matters we can make
Source faster later.

Was double-Converting the color in BlitColor, so cut that out.  Simpler!
temporary hacking on adding 2D surfaces
more hacking
more hacking